对表中的数据进行限定, 保证数据的正确性、有效性和完整性。
一. 非空约束
NOT NULL
, 值不能为null(对于字符串类型要设置非空, 防止空指针异常)
- 添加非空约束的两种方式
- 创建表时, 添加非空约束
- 创建完表后, 添加非空约束
ALTER TABLE stu MODIFY name VARCHAR(20) NOT NULL;
- 删除name的非空约束
ALTER TABLE stu MODIFY name VARCHAR(20);
二. 唯一约束
unique, 某一列的值不能重复
Tips: 唯一约束可以有NULL值, 且NUlLL可以重复
- 添加唯一约束的两种方式
- 创建表示, 给某字段添加唯一约束
- 创建表之后, 添加唯一约束
ALTER TABLE stu MODIFY phone_number VARCHAR(11) UNIQUE;
- 删除唯一约束
ALTER TABLE stu DROP INDEX phone_number;
唯一约束, 也叫唯一索引, 因此与删除非空约束的方式是不同的.
三. 主键约束
主键(primary key) : 非空且唯一.
- 一张表只能有一个字段为主键.
- 主键就是表中记录的唯一标识
- 添加主键约束的两种方式
- 创建表时, 添加主键约束
- 创建完标后, 添加主键
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
- 删除主键约束
ALTER TABLE stu DROP PRIMARY KEY;
3.1 自动增长
在添加主键时, 通常会配合自动增长一起使用.
- 概念 : 如果某一列是数值类型, 使用
auto_increment
可以完成值的自动增长 - 在创建表时, 添加主键约束, 并完成主键自增长.
添加自动增长的第二种方式
ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
- 删除自动增长
ALTER TABLE stu MODIFY id INT;
四. 外键约束
foreign key, 让表与表产生关系, 从而保证数据的正确性.
- 添加外键的两种方式
- 创建表示添加外键
Tips : constraint : 强制,限制, 约束
references 参考; 标记
- 创建表之后, 添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主键名称(主表列名称);
- 删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
4.1 级联操作
两张表通过外键连接, 如果一张表修改数据, 如何同时修改主键的那张表的所有数据. 这是通过在添加外键的同时, 添加上级联操作语句即可同时修改两张表的数据.
- 添加级联操作
语法 : ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATA CASCADE ON DELETE CASCADE;
- 分类 :
- 级联更新 :
ON UPDATE CASCADE
- 级联删除 :
ON DELETE CASCADE
Tips : CASCADE : 串联