• Mysql必知必会


    1.了解SQL
    数据库 :保存有组织的数据的容器(文件柜)
    表 :某种特定类型数据的结构化清单(文件)
    列 :表中的一个字段
    数据类型:所容许的数据的类型
    行 :表中的一个记录
    主键 :一列(或一组列),其值能够唯一区分表中的每个行
    SQL :结构化查询语言

    2.MySQL简介
    DBMS 开源,执行很快,可信赖,简单

    3.使用MySQL
    USE 数据库名;
    SHOW DATABASES;SHOW TABLES;SHOW STATUS;
    SHOW CREATE ...;

    4.检索数据
    检索单个列:SELECT 列 FROM 表;
    检索多个列:SELECT 列1,列2 FROM 表;
    检索不同行:SELECT DISTINCT 列 FROM 表;
    限制结果 :SELECT 列 FROM 表 LIMIT 5,5;

    5.排序检索数据
    按单列排序:SELECT 列 FROM 表 ORDER BY 列;
    按多列排序:SELECT 列1,列2 FROM 表 ORDER BY 列1,列2;
    按排序方向:DESC降序 ASC升序(默认)
    ORDER BY 后面 LIMIT

    6.过滤数据
    SELECT 列 FROM 表 WHERE 列条件;
    WHERE 后面 ORDER BY;
    范围值检查:WHERE 列 BETWEEN 5 AND 10;
    空值检查:IS NULL

    7.数据过滤
    组合WHERE子句 AND OR(优先处理AND)
    IN操作符 与OR相同功能

    8.用通配符进行过滤
    LIKE操作符
    % 任何字符任意次数
    _ 匹配单个字符
    不要过度使用通配符

    9.用正则表达式进行搜索
    REGEXP关键字
    . 匹配任意一个字符
    | 进行OR匹配

    10.创建计算字段
    拼接字段 Concat()函数
    算术计算

    11.使用数据处理函数

    12.汇总数据
    聚集函数 AVG COUNT行数 SUM列和

    13.分组数据
    数据分组 GROUP BY(不能使用别名)
    WHERE GROUP BY ORDER BY
    过滤分组 HAVING

    14.使用子查询
    子查询进行过滤 得到数据
    子查询作为字段

    15.联结表

    select vend_name,prod_name,prod_price from vendors,products where vendors.vend_id = products.vend_id order by vend_name,prod_name;

    在没有where字句的情况下,默认为笛卡儿积。

    select vend_name,prod_name,prod_price from vendors inner join products on vendors.vend_id = products.vend_id;内部联结

    联结影响性能,联结越多表,性能降低的越厉害。

    16.创建高级联结

    select p1.prod_id,p1.prod_name from products as p1,products as p2 where p1.vend_id = p2.vend_id and p2.prod_id = 'dtntr';自联结

    select c.*,.......;自然联结,不存在重复的列

    select customers.cust_id,orders.order_num from customers left outer join orders on customers.cust_id=orders.cust_id;左外部联结,左边所有的行

    17.组合查询

    union组合查询的结果,union all

    18.全文本搜索

    fullext实行全文搜索

    19.插入数据

    insert与select一起用,插入取出来的数据

    20.更新和删除数据

    update 表 set .....;

    delete from 表 where.....;

    21.创建和操纵表

    alter table 表.....;修改表结构

    22.使用视图

    视图,不需要了解表的结构,虚拟表,数据他人已经select获取好。

    重用sql语句;简化复杂sql,不必知道细节;给予用户部分数据而不是全部(权限);

    create view 视图 as 查询语句;

    23.使用存储过程

    简单,安全,高性能;联想到封装好的函数

    24.使用游标

    25.使用触发器
    事件发生时自动执行(DELETE INSERT UPDATE)

    26.管理事务处理
    一种机制,SET TRANSACTION;

    27.全球化和本地化
    SHOW CHARACTER SET;SHOW COLLATION;

    28.安全管理
    权限的合理分配
    SHOW GRANT FOR 用户;REVOKE
    GRANT 权限 ON 数据库.表 TO 用户;

    29.数据库维护
    备份数据 mysqldump mysqlhotcopy...
    进行数据库维护 ANALYZE TABLE 表;OPTIMISE TABLE;
    诊断启动问题 手动启动服务器
    查看日志文件
    错误日志【hostname.err】
    查询日志【hostname.log】
    二进制日志【hostname.bin】
    慢查询日志【slow.log】
    FLUSH LOGS刷新日志

    30.改善性能
    专用服务器 SHOW VARIABLES;SHOW STATUS;
    多用户多进程 SHOW PROCESSLIST;KILL命令
    试验联结,并,子查询,找出最佳的方法
    EXPLAIN语句
    存储过程比一条一条快
    正确的数据类型
    按需取数据(SELECT *)LIKE很慢,使用FULLTEXT
    时间在变化,优化也在变
    索引 检索性能+ 插入,删除,更新性能—
    复杂的条件,考虑使用UNION语句




  • 相关阅读:
    Linux安装MySQL5.7.25
    Linux配置jdk
    SpringBoot junit 测试
    SpringBoot jasypt 对配置文件项加密
    关于Hibernate级联操作的总结
    GROUP BY 和 ORDER BY一起使用时,要注意的问题!
    web.xml 中的listener、 filter、servlet 加载顺序及其详解
    Hibernate对象的生命周期(补充)
    hibernate--持久对象的生命周期介绍
    开发属于你自己的标签库!
  • 原文地址:https://www.cnblogs.com/netRob/p/5118338.html
Copyright © 2020-2023  润新知