美文网首页
MySQL介绍及sql规范

MySQL介绍及sql规范

作者: aq_wzj | 来源:发表于2019-01-14 16:32 被阅读0次

    1. MySQL 版本

    主流版本
    mysql  5.6      5.6.36  5.38  5.6.40 
    mysql  5.7      5.7.18  5.7.20  5.7.22 
    

    2.MySQL的体系结构

    2.1 MySQL C/S结构

    两种链接方法: TCP/IP (远程,本地),SOCKET(本地)

    mysql -uroot -poldboy123 -h 10.0.0.200 -P3306
    mysql -uroot -poldboy123 -S /tmp/mysql.sock
    

    2.2 MySQL实例

    实例=mysqld+内存结构
    MySQL实例===>mysqld(董事长)-->master thread(经理)-->N Thread(员工)  -->内存结构(办公区)
    

    2.3 mysqld三层结构

    连接层
    1.提供连接协议(TCP ,Socket)
    2.用户验证
    3.提供专用链接线程
    
    SQL层
    1.接收上层的命令
    2.语法检测
    3.语义(SQL类型),权限
    SQL类型:DDL数据定义语言   DCL数据控制语言    DML数据操作语言     DQL数据查询
    4.专用解析器解析SQL,解析成多种执行计划
    5.优化器:帮我们选择一个代价最低的执行计划(cpu,IO,MEM)
    6.执行器:按照优化器的选择,执行SQL语句,得出获取数据方法
    7.查询缓存:默认是关闭的.   一般会使用redis产品替代      Tair
    8.记录日志:二进制日志
    
    存储引擎层
    按照SQL层结论,找相应数据,结构化成表的形式
    

    3. MySQL的逻辑结构

    库(schema):存储表的地方(库名,属性)
    
    表(Table):二维表
        元数据
            表名字
            表的属性(表的大小,权限,存储引擎,字符集等)
            列:列名字,列属性(数据类型,约束,其他定义)
        记录:
            数据行
    

    4. SQL 语句(SQL92规范)

    4.1 SQL 种类

    DDL数据定义语言

    DCL数据控制语言

    DML数据操作语言

    DQL数据查询语言

    4.2 SQL语句的操作对象: 库与表

    4.3 不同分类语句作用

    DDL :   
        库
            CREATE DATABASE
            DROP   DATABASE
            ALTER  DATABSE
    
            SQL语句规范第一条:
            CREATE DATABASE oldboy CHARSET utf8mb4;
            1.关键字大写(非必须),字面量小写(必须)
            2.库名字,只能是小写,不能有数字开头,不能是预留关键字
            3.库名字必须和业务名有关,例如his_user;
            4.必须加字符集.
    
        表
            CREATE TABLE 
            DROP   TABLE
            ALTER  TABLE
    
            CREATE TABLE t1 (
                id  INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
                sname  VARCHAR(20) NOT NULL COMMENT '用户姓名',
                gender ENUM('f','m','u') NOT NULL DEFAULT 'u' COMMENT '用户性别',
                telnum CHAR(11) NOT NULL UNIQUE COMMENT '手机号',
                tmdate DATETIME NOT NULL DEFAULT NOW() COMMENT '录入时间'
                )ENGINE INNODB CHARSET utf8mb4;
    
            SQL语句规范第二条:
            1.关键字大写(非必须),字面量小写(必须)
            2.表名必须小写,不能有数字开头,不能是预留关键字
            3.表名字必须和业务名有关
            4.必须加存储引擎和字符集
            5.适合的数据类型
            6.必须要有主键
            7.尽量非空选项
            8.字段唯一性
            9.必须加注释
            10.避免使用外键
            11.建立合理的索引
    
    DCL:
        grant
        revoke
        lock
        
    DML : 
        insert
        update
        delete 
        
        SQL语句规范第三条:
        1.insert语句按批量插入数据
        2.update必须加where条件
        3.delete尽量替换为update
        4.如果有清空全表需求,不要用delete,推荐使用truncate 
        
    DQL :
        select 
        show 
            
        SQL语句规范第四条: 
                1. select语句避免使用 select *  from  t1; ---->  select id,name from t1;
                2. select语句尽量加等值的where条件.例如 select * from t1 where id=20;
                3. select 语句对于范围查询,
                    例如 select * from t1 where id>200; 
                    尽量添加limit或者  id>200 and id<300 union all id>300 and id<400
                4. select 的where 条件  不要使用 <>  like '%name'  not in  not exist 
                5. 不要出现3表以上的表连接,避免子查询
                6. where条件中不要出现函数操作.
    

    相关文章

      网友评论

          本文标题:MySQL介绍及sql规范

          本文链接:https://www.haomeiwen.com/subject/ksljdqtx.html