美文网首页mysql
2020-08-12约束

2020-08-12约束

作者: 智障猿 | 来源:发表于2020-08-19 08:37 被阅读0次

    约束

    • 概念
      对表中的数据进行限定,保证数据的正确性、有效性和完整性
    • 分类
      1.主键约束:primary key
    1. 非空约束:not null
    2. 唯一约束:unique
    3. 外键约束:foreign key

    非空约束

    某一列的值不能为NULL

    • 在创建表时添加约束
    create table stu(
    id int,
    name varchar(20) NOT NULL;
    );
    
    • 删除约束
      alter table stu change name varchar(20);
    • 创建完表之后添加约束
      alter table stu change name varchar(20) NOT NULL;

    唯一约束

    某一列的值不能重复

    • 在创建表时添加
    create table stu(
    id int,
    phone_number varchar(20) UNIQUE
    );
    
    • 删除唯一约束
      alter table stu drop index phone_number;
    • 在创建表之后添加唯一约束
      alter table stu modify phone_number varchar(20);
    • 注意
      ①唯一约束可以有null值,但是每一列只能有一行为null;

    主键约束

    • 注意
      ①含义:非空且唯一
      ②一张表只能有一个字段为主键
      ③主键就是表中记录的唯一标识
    • 创建表时添加主键
    create table stu(
    id int primary key,
    name varchar(20)
    );
    
    • 删除主键
      alter table stu drop primary key;
    • 创建完表之后,添加主键
      alter table stu modify id int primary key;
    • 自动增长
      概念:如果某一列是数值类型的,使用auto_increment可以来完成值的自动增长
    1. 创建表时,设置主键,并设置为自动增长
    create table stu(
    id int primary key auto_increment,
    name varchar(20)
    )
    
    1. 删除自动增长
      alter table stu modify id int;//无法去掉主键,但是可以取掉自动增长
    2. 添加自动增长
      alter table stu modify id int AUTO_INCREMENT

    外键约束

    让表与表产生关系,从而保证数据的正确性

    • 在创建表时,添加外键
    create table 表名(
    ...
    外键列
    constraint 外键名称 foreign key (外键列名) references 主表名称(主表列名)
    )
    
    • 如何删除外键
      alter table 表名 drop foreign key 外键名;
    • 添加外键
      alter table 表名 add constraint 外键名 foreign key (外键列名) references 主表名称(主表列名)
    • 级联更新
      alter table 表名 add constraint 外键名 foreign key 外键列名 references 主表名称(主表列名)on update cascade;
    • 级联删除
      alter table 表名 add constraint 外键名 foreign key 外键列名 references 主表名称 (主表列名)on delete cascade;w

    相关文章

      网友评论

        本文标题:2020-08-12约束

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