约束

约束

概念:对表中的数据进行限定,保证数据的正确性、有效性、完整性。

分类

  1. 主键约束:primary key

    • 主键非空且唯一
    • 一张表只能有一个字段为主键
    • 主键就是表中一条记录的唯一标识

    • 在创建表时添加添加主键约束

      CREATE TABLE person(
         ID INT PRIMARY KEY,
          NAME VARCHAR(10) NOT NULL
      );
    • 主键的删除

      ALTER TABLE person DROP PRIMARY KEY;
    • 创建表后添加主键

      ALTER TABLE person MODIFY ID INT PRIMARY KEY; -- 方法1
      ALTER TABLE person ADD PRIMARY KEY(ID);-- 方法2
      
  2. 自动增长:一般配合主键,如ID等自动增长,使用关键字auto_increment。每次插入记录,该字段如果赋值为NULL,那么就可以自动增长,但是也可以指定指定的值。

    • 在创建表的时候使用自动增长

      CREATE TABLE person(
         ID INT PRIMARY KEY AUTO_INCREMENT,
          NAME VARCHAR(10) NOT NULL
      );
    • 创建表之后删除自动增长

      ALTER TABLE person MODIFY ID INT;
    • 创建表后添加自动增长

      ALTER TABLE person MODIFY ID INT AUTO_INCREMENT;
  3. 非空约束:not null,表示值不能为空

    • 在创建表的时候添加约束,表示这个字段为非空

      CREATE TABLE person(
         ID INT,
          NAME VARCHAR(10) NOT NULL
      );
    • 在建表后添加删除非空约束,其实就是修改列,modify或者change

      ALTER TABLE person MODIFY NAME VARCHAR(10);
      ALTER TABLE person MODIFY NAME VARCHAR(15) NOT NULL;
  4. 唯一约束:unique,表示值是唯一的,比如ID等

    • 在创建表时添加唯一约束

      CREATE TABLE person(
         ID INT UNIQUE, 
          NAME VARCHAR(10) NOT NULL
      );

      注意:在MySQL中,有唯一约束的列是可以有多个NULL值的。

    • 创建表后添加删除唯一约束

      ALTER TABLE person MODIFY NAME VARCHAR(10) UNIQUE; -- 创建表后加入唯一约束
      ALTER TABLE person DROP INDEX ID; -- 删除唯一约束
  5. 外键约束:foreign key,让表和表之间产生关系,保证数据的正确性

    1. 在创建表时可以添加约束,语法:

      create table 表名(
        ...
        外键列,
        constraint 外键名 foreign key (外键字段)references 主表名称(主表列名称)
      )
    2. 删除外键

      ALTER TABLE 表名称 DROP FOREIGN KEY 外键名称;
    3. 添加外键

      ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段)REFERENCES 主表名(主表列名称)
  6. 级联操作

    • 添加级联操作

      • 语法:

        ALTER TABLE 表名 ADD CONSTRAINT 外键名称
         FORRIGN KEY (外键字段名) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE;
    • 级联更新:ON UPDATE CASCADE;
    • 级联删除:ON DELETE CASCADE;

转载于:https://www.cnblogs.com/zhuobo/p/10689309.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值