数据库--约束

约束

目标:

  1. 约束的概念和分类:保证数据的正确性、有效性和完整性;
    非空NOT NULL唯一 UNIQUE主键PRIMARY KEY外键FOREIGN KEY
  2. 四种约束的添加和删除语句:创建表时添加、表创建完后修改。

1. 约束的概念

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

2. 约束的分类

2.1 非空约束 NOT NULL

  • (1) 概念: 被约束的那一列内容不能为null。
  • (2) 添加方式:
    ① 创建表时添加
    *CREATE TABLE stu(id INT,NAME VARCHAR(20) NOT NULL);
    约束NAME列的数据不能为null;
    ② 表创建完后用ALTER, MODIFY关键字添加或删除
    *ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
    创建完表后再为NAME列添加约束;
    *ALTER TABLE stu MODIFY NAME VARCHAR(20);
    删除NAME列的非空约束。

2.2 唯一约束 UNIQUE

  • (1) 概念: 被修饰的那一列的值不能重复。注意:MySQL中可以有多个NULL。
  • (2) 添加方式:
    ① 创建表时添加
    *CREATE TABLE stu(id INT,NAME VARCHAR(20) UNIQUE);
    约束NAME列的数据不能重复;
    ② 表创建完后用ALTER, MODIFY关键字添加
    *ALTER TABLE stu MODIFY NAME VARCHAR(20) UNIQUE;
    创建完表后再为NAME列添加唯一约束;
    ③ 表创建完后用ALTER, DROP INDEX关键字删除
    *ALTER TABLE stu DROP INDEX NAME VARCHAR(20);
    删除NAME列的唯一约束。

2.3 主键约束 PRIMARY KEY

  • (1) 概念: 键就是表中记录的唯一标识。被主键约束的那一列的值非空且唯一,一张表只能有一个字段为主键。
  • (2) 添加方式:
    ① 创建表时添加
    *CREATE TABLE stu(id INT PRIMARY KEY,NAME VARCHAR(20) );
    id列的数据为主键,非空且唯一;
    ② 表创建完后用ALTER, DROP PRIMARY KEY关键字删除
    *ALTER TABLE stu DROP PRIMARY KEY;
    删除主键约束,注意不需要指定字段,因为一个表中只有一个主键。
  • (3) 自动增长:
    如果某一列是数值类型,使用AUTO_INCREMENT来完成值的自动增长,一般配合主键使用。
    ① 创建表时添加自动增长
    *CREATE TABLE stu(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) );
    注意: id添加了自动增长后,赋值NULL,其值会自动增长;
    也可以自己赋值,此时自动增长只与上一项的数据有关。
    ② 表创建完后用ALTER, MODIFY关键字添加或删除
    *ALTER TABLE stu MODIFY id INT AUTO_INCREMENT; 添加自动增长
    *ALTER TABLE stu MODIFY id INT AUTO_INCREMENT; 删除自动增长,注意主键这样删不掉。

2.4 外键约束 FOREIGN KEY

  • (1) 概念: 让表与表之间产生关系,从而保证数据的正确性。

  • (2) 添加方式:
    创建表时添加外键:
    *CREATE TABLE 表名( ... 外键列, CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCES 主表名称(主表列名称) );
    ② 表创建完后用ALTER, DROP关键字删除
    *ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
    *② 表创建完后用ALTER, ADD关键字添加
    *ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCES 主表名称(主表列名称);
    (3) 级联操作:
    主表与被外键约束的表之间的关系。
    分类:

  • 级联更新 ON UPDATE CASCADE
    主表被关联的列更新后,被约束的外键也更新

  • 级联删除 ON DELETE CASCADE
    主表被关联的列删除后,被约束的外键也删除

    添加级联操作:
    *ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值