【属性上的约束条件】
属性上约束的定义
在 SQL 中,使用 CREATE TABLE
语句定义属性的同时,可以根据应用要求定义属性上的约束条件,即属性值的限制,包括:
- 列值非空
NOT NULL
- 列值唯一
UNIQUE
- 属性值限制
CHECK
(检查列值是否满足一条件表达式)
关于列值非空和列值唯一,在 SQL 基本表的数据定义 进行过介绍,下面仅介绍 CHECK
短语的用法
例如,student 表中的性别属性仅允许取男、女
1 | CREATE TABLE student ( |
属性上约束条件的检查与违约处理
在向表中插入元组或修改属性值时,RDBMS 会检查属性上的约束条件是否满足
若不满足,则操作会被拒绝执行
【元组上的约束条件】
元组上约束条件的定义
与属性上约束条件的定义类似,在 CREATE TABLE
语句中,可以使用 CHECK
短语定义元组上的约束条件,即元组级限制
与属性值限制相比,元组级限制可以设置不同属性间取值的相互约束条件
例如,当学生性别是男时,其名字不能以 Ms. 开头
1 | CREATE TABLE student ( |
元组约束条件的检查与违约处理
在向表中插入元组或修改属性值时,RDBMS 会检查元组上的约束条件是否满足
若不满足,则操作会被拒绝执行