SQL约束简介

 
关于 SQL 约束,我们已经在《RDBMS是什么》中进行了简要介绍,但是现在我们有必要再温习一下,并稍加深入。

约束(Constraint)是指表的数据列必须强行遵守的规则,这些规则用于限制插入表中的数据类型,这样能够确保每份数据的准确定和可靠性。

约束可以是列级别,也可以是表级别;列级约束仅作用于某一列,而表级约束则作用于整张表。

下面是 SQL 常用的一些约束:
约束 说明
NOT NULL 非空约束,确保列中不能有 NULL 值。
DEFAULT 默认约束,如果未指定值,那么列将提供默认值。
UNIQUE 唯一约束,确保列中所有的值都不相同。
PRIMARY Key 主键,用来唯一标识数据库中的每一行/记录。
FOREIGN Key 外键,用来唯一标识任何其它数据库中表的行/记录。
CHECK 检查性约束,用于确保列中的所有值都必须满足某些条件。
INDEX 索引,用于快速从数据库中检索或者获取数据。

创建约束

在创建数据表时,可以使用 CREATE TABLE 语句指定约束规则;创建数据表以后,也可以使用 ALTER TABLE 语句来增加约束规则。

删除约束

可以使用带有 DROP CONSTRAINT 选项的 ALTER TABLE 语句来删除已经定义的约束。例如,删除 EMPLOYEES 表中的主键可以使用下面的语句:
ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK;

有些数据库对 SQL 进行了扩展,额外提供了一些关键字用来删除某些特定的约束。例如,Oracle 可以使用 DROP PRIMARY KEY 关键字删除主键约束:
ALTER TABLE EMPLOYEES DROP PRIMARY KEY;

有些数据库也允许暂时禁用约束。也就是说,您无需从数据库中永久删除约束,只需要将它暂时禁用,以后再重新启用即可。