SQL约束(Constraints)
开发工具与关键技术:Oracle
作者:赖俏萍
撰写时间:2019年 3月28日
CHECK约束用于限制列中的值的范围.
如果对单个列定义CHECK 约束 ,那么该列只允许特定的值,
如果对一个表定义CHECK 约束,那么此约束在特定的列中对值进行限制
主要有以下几种约束:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
- 不可空(NOT NULL)
约束强制列不接受NULL值 - 唯一约束(UNIQUE)
UNIQUE约束唯一标识数据库表中的每条记录
UNIQUE和PRIMARY KEY约束均为列或列集合提供了唯一性的保证.
创建表时指定 :
但是这样UNIQUE约束名是按规则默认的,我们无法确认,不便于后续修改
需在创建时指定约束名称,当然、也可以同时多列建立唯一约束,建议创建表后添加约束
(1) 创建学生表时,指定ID和Name唯一约束
(2) 为学生的姓名添加唯一约束
(3) 删除学生ID、姓名唯一约束
- 主键(PRIMARY KEY)
PRIMARY KEY 约束唯一标识数据库表中的每条记录
规则 :
主键必须包含唯一的值
主键列不能包含 NULL值
每个表都应该有一个主键 ,并且每个表只能有一个主键
其使用方法与UNIQUE一样,这里只说几个简单列子:
(4) 指定学生ID为主键
(5) 删除学生ID主键
(6) 创建学生ID和姓名的联合主键
注意:在创建主键时,一定要保证有NOT UNLL 约束
4) 外键(FOREIGE KEY)
一个表中的FOREIGE KEY 指向另一个表中的PRIMARY KEY
如:学生信息表中的MajorID即使专业信息表MajorID的外键
(7) 学生信息表中的MajorID添加外键约束
ALTER TABLE Students ADD CONSTRAINT FK_Students_MajorID
FOREIGN KEY (MajorID)REFERENCES Majors(ID)
(8) 删除外键约束
ALTER TABLE Students DROP CONSTRAINT FK_Students_MajorID
5) 校验约束(CHECK)
CHECK约束用于限制列中的值的范围
(9) 设置学生的名称长度不能少于2
(10) 删除该约束
(11) 多列约束,对姓名和年龄添加约束