MySQL主键约束、非空约束、唯一约束、外键约束

MySQL主键约束、非空约束、唯一约束、外键约束

  1. 概念:对表中的数据进行约束(限定),保证数据的正确性、有效性和完整性

  2. 分类:

    • 主键约束:primary key
    • 非空约束:not null
    • 唯一约束:unique
    • 外键约束:foreign key
  3. primary key:主键约束

    • 含义:唯一且非空

    • 一张表仅能有一个字段为主键

    • 主键是表中记录的唯一标识

    1. 在创建表时,添加主键

      CREATE TABLE student(
        s_id int primary key, --给s_id添加主键约束
          name varchar(20)
      );
      
    2. 创建完表后,添加主键

      ALTER TABLE student MODIFY id INT PRIMARY KEY;
      
    3. 删除主键约束

      ALTER TABLE student DROP PRIMARY KEY;
      
  4. not null:非空约束

    • 添加列数据不能为NULL
    1. 在创建表时,添加非空约束

      CREATE TABLE student(
            s_id int,
            name varchar(20) NOT NULL --name添加非空约束
      );
      
    2. 创建完表后,添加非空约束

      ALTER TABLE student MODIFY name VARCHAR(20) NOT NULL;
      
    3. 删除主键约束

      ALTER TABLE student MODIFY name VARCHAR(20);
      
  5. unique:唯一约束

    • 添加列数据不能重复
    • 可以有NULL值,但是只能有一个
    1. 在创建表时,添加唯一约束

      CREATE TABLE student(
         s_id int,
          phone varchar(20) NUIQUE --phone添加非空约束
         );
      
    2. 创建完表后,添加唯一约束

      ALTER TABLE student MODIFY phone VARCHAR(20) UNIQUE;
      
    3. 删除唯一约束

      ALTER TABLE student DROP INDEX phone;
      
  6. foreign key:外键约束

    1. 在创建表时,添加外键约束

      CREATE TABLE 表名(
        ...
        外键列,
        CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCE 外表名称(外表列名称);
      );
      
    2. 创建表之后,添加外键

      ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERCES 外表名称(外表列名称);
      
    3. 删除外键

      ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
      
    4. 级联操作

      1. 添加级联操作

        ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERCES 外表名称(外表列名称) ON UPDATE CASCADE ON DELETE CASCADE;
        
      2. 级联更新:ON UPDATE CASCADE

      3. 级联删除:ON DELETE CASCADE

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。