美文网首页
MySQL核心技术与最佳实践(第3章表结构关联)

MySQL核心技术与最佳实践(第3章表结构关联)

作者: 凯睿看世界 | 来源:发表于2019-02-19 16:04 被阅读1次

    Mysql数据类型
    数字类型
    整数类型
    tinyint 1字节
    smallint 2字节
    mediumint 3字节
    int 4字节
    bigint 5字节
    小数类型
    float 4字节
    double 8字节
    字符类型
    char(n) 最多255
    varchar(n) n取值与字符集有关
    tinytext 与字符集有关,下同
    text
    mediumtext
    longtext
    日期类型
    date 类型 3字节
    time 类型 3字节
    year 类型 1字节
    datetime 类型 8字节
    timestamp类型 8字节
    复合类型
    enum 类型 最多65535
    set 集合类型 最多64
    二进制类型
    blob 类型
    tinyblob
    blob
    mediumblob
    longblob
    binary 类型 n字节
    varbinary 类型 实际占用
    bit 类型 n个位


    image.png

    show index from 表名; 查看索引
    constraint 约束名 foreign key 表A references 表B [on delete 级联选项] [on update 级联选项]
    级联选项取值: cascade , set null, no action, restrict
    MyISAM 引擎不支持外键
    engine=存储引擎 , default charset=字符集类型, pack_keys = 压缩类型,1压缩索引中所有关键字,0取消索引中所有关键字压缩,default 字压缩索引中字符类型的关键字,如 char, varchar,text

    单行注释以#开头,或--加空格,多行注释以/* */
    复制表结构 1: create table 新表名 like 源表
    复制表结构及数据 2: create table 新表名 select * from 源表
    alter table 表名 drop 字段名
    alter table 表名 add 新字段名 数据类型 [约束条件] [first|after 旧字段名]
    alter tabel 表名 change 旧字段名 新字段名 数据类型
    如果仅修改数据类型 alter table 表名 modify 字段名 字段类型
    alter table 表名 add constraint 约束名 约束类型(字段名)
    alter table person add constraint name_unique unique(name);
    alter table 表名 drop primary key;
    alter table 表名 drop foreign key 约束名;
    alter table 表名 drop index 唯一索引;
    修改表选项
    alter table 表名 engine=新存储引擎类型;
    alter table 表名 default charset=新的字符集;
    alter table 表名 auto_increment=新的初始值;
    alter table 表名 pake_keys=新的压缩类型;

    rename talbe 旧表名 to 新表名;
    alter table 旧表名 rename 新表名;

    drop talbeNmae;
    truncate tableName;

    对于MyISAM 索引数据存放在 MYI索引文件中
    对于InnoDB 索引数据存放在表空间文件中,可以是共享表空间也可能是独立表空间

    索引关键字选取原则
    1:表的某个字段值的离散度越高,越适合作为索引关键字。
    如主键,唯一约束
    2:占用存储空间少的字段更适合作为索引关键字。
    3:存储空间固定的字段更适合作索引
    4:where子句经常使用的字段,分组或排序字段,两个表连接字段更适合作索引
    5:更新频繁的字段不适合作索引,不出现在where子句中的字段不适合作索引
    6:最左前缀原则
    7:尽量使用前缀索引

    主键约束,唯一约束,默认值约束,检查约束,非空约束,外键约束
    索引分为:
    聚簇索引,主索引,唯一性索引,普通索引,复合索引等,MYSQL还支持全文索引

    create [unique | fulltext] index 索引名 on 表名(字段名[(长度)]) [asc | desc]
    alter table add [unique | fulltext] index 索引名 on 表名(字段名[(长度)]) [asc | desc]

    drop index 索引名 on 表名;

    相关文章

      网友评论

          本文标题:MySQL核心技术与最佳实践(第3章表结构关联)

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