美文网首页
MySQL—— 约束&索引

MySQL—— 约束&索引

作者: 刘铁崧 | 来源:发表于2021-12-30 17:41 被阅读0次

    约束

    对表中字段(值)进行一定的约束限制,以保证数据的完整性、一致性、有效性
    约束的分类(2中基本约束)
    一、 \color{red}{非空约束}(NOT NULL):不允许该字段的值有NULL
    用法:

    字段名 数据类型 NOT NULL
    

    二、\color{red}{默认约束}(DEFAULT):向表中插入记录,不给该字段赋值时,则使用默认值
    用法:

    字段名 数据类型 DEFAULT 默认值
    

    注意:非空约束和默认约束可以混合使用
    如:(id不能为空,性别设置默认为s)

    CREATE TABLE list1(
    id int NOT NULL,
    name varchar(15),
    sex enum('m','f','s') DEFAULT 's'
    );
    


    索引

    对数据库中表的一列或多列的值进行排序的一种结构(排序使用的算反:Btree)
    优点:加快数据检索速度
    缺点:
    · 占用物理的存储空间
    · 当表中数据更新时,索引需要动态维护,占用系统资源,降低数据维护速度
    索引分类:普通索引、唯一索引、外链索引、主链索引

    · 普通索引(INDEX)

    使用规则:

    1. 可设置多个字段(建议设置常用字段)
    2. 字段值无约束
    3. key标志:MUL

    创建索引:

    1. 创建表时:
    CREATE TABLE 表名(字段名 数据类型,... ...,INDEX(字段名),INDEX(字段名),....);
    案例:
    CREATE TABLE list(
    id int,
    name varchar(20),
    score decimal(5,2),
    INDEX(id),
    INDEX(name)
    );
    
    1. 已有表时:
    CREATE INDEX 索引名 ON 表名(字段名);
    案例:
    CREATE INDEX number ON userlist(number);
    

    建议:索引名和字段名保持一致

    查看索引:

    1. 简单信息:
    DESC 表名;(找key标志为MUL的字段)
    
    1. 详细信息
    SHOW INDEX FROM 表名;(给出每个字段的详细信息)
    
    参数字段:
    # Non_unique (0代表唯一索引,1代表普通索引)
    # Key_name(索引字段名)
    # Index_type(索引类型)
    # ...等
    

    删除索引:

    DROP INDEX 索引名 ON 表名;
    

    注意:只能每次删除一个索引

    · 唯一索引(UNIQUE)

    使用规则:

    1. 可设置多个字段
    2. 约束:字段值不允许重复,但可为NULL
    3. key标志:UNI

    创建索引:

    1. 创建表时:
    CREATE TABLE 表名 (字段名 数据类型,... ...,UNIQUE(字段名),...);
    
    1. 已有表时:(受表中原有数据限制)(值必须具有唯一性,不重复,否则创建失败)
    CREATE UNIQUE INDEX 索引名 ON 表名(字段名);
    /// 案例:
    /// 给表添加字段
    ALTER TABLE userlist ADD number bigint;
    /// 给字段创建唯一索引
    CREATE UNIQUE INDEX number on userlist(number);
    

    查看索引:

    删除索引:

    · 主键索引

    使用规则:

    创建索引:

    查看索引:

    删除索引:

    · 外键索引

    使用规则:

    创建索引:

    查看索引:

    删除索引:

    \color{red}{默认约束}

    相关文章

      网友评论

          本文标题:MySQL—— 约束&索引

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