多语言展示
当前在线:266今日阅读:99今日分享:20

Oracle数据库约束条件的使用

约束条件也称作完整性约束条件,是在数据表上强制执行的一些数据检验规则,当执行DML操作时必须符合约束条件,否则不能成功执行。约束条件包括有非空(Not Null)、唯一(Unique)、主键(Primary Key)、外键(Foreign Key)和检查(Check)。约束条件可以在建表时建立也可以在建表后建立。约束条件需要命名,可以由用户指定,否则由系统按照SYS_Cn的默认格式来命名,n是一串数字。
工具/原料
1

已安装有Oracle数据库11g

2

已安装有Oracle SQL Developer

3

Windows 操作系统

非空(Not Null)
1

非空(Not Null)约束用于确保字段值不为空。非空约束是五个约束条件中唯一一个只能定义在列级的约束条件。非空约束条件可以在建表时建立,也可以在建表后建立。如下图:

2

在数据字典中查询刚刚建立的非空约束条件。

唯一(Unique)
1

唯一约束条件用于保证字段或者字段的组合不出现重复值。同样唯一约束条件可以在建表时建立,也可以在建表后建立。如下图:

2

在数据字典中查询唯一约束条件:

主键(Primary Key)
1

主键约束条件从功能上看相当于非空且唯一。主键可以是单字段也可以是多字段组合。在一个白哦上只允许建立一个主键,而其他约束条件则没有明确的个数限制。在建表时建立主键约束:如下图

2

在建表后建立表级约束如下图:

3

在数据字典中查看主键约束条件:

外键(Foreign Key)
1

外键约束条件定义在两个表的两个字段或一个表的两个字段上,用于保证相关两个字段的关系。外键约束包括两个方面的数据约束:(1):子表上定义的外键的列值,必须从主表被参照的列值中选取,或者为NULL;(2):当主表参照的值被子表参照时,主表的该行记录不允许被删除。

2

在数据字典中查看外键约束条件:

3

在外键约束中有两个短语是可选的分别为ON DELETE CASCADE和ON DELETE SET NULL.前一个用于指定级联删除选项,当删除主表数据时会级联删除从表的相关数据;后一个表示当删除主数据时,将从表的外键列值设置为NULL

检查(Check)
1

检查约束条件用来强制在字段上的每个值都要满足Check中定义的条件。

2

在数据字典中查看检查约束条件:

约束条件的启用和禁用
1

从字面上我们应该就能知道该功能的用途了。禁用和启用约束条件的语法如下:ALTER TABLE table_nameDISABLE | ENABLE CONSTRAINT constraint_name [CASCADE];

2

禁用Check约束:

3

启用Check约束:

4

如果禁用的是主键约束条件,且这个主键被其他列的外键约束参照,则一种选择是使用CASCADE短语,进行级联操作,另一种是先将外键约束条件禁用或删除,再禁用主键约束。

修改约束条件的名称

当希望修改约束条件的名称时,可以使用ALTER TABLE的RENAME CONSTRAINT子句修改约束条件的名称。语法如下:ALTER TABLE table_name   RENAME CONSTRAINT old_cons_name TO new_cons_name;具体实现如下图:

注意事项
1

英文非空约束只能定义在列级,故在建表后在增加非空约束条件,只能使用ALTER TABLE的MODIFY子句,而不能使用ADD CONSTRAINT子句

2

一般约束条件的命名规则是:表名_列名_约束条件类型

3

当约束条件建立好后,可以通过字典USER_CONSTRAINTS和UESR_CONS_COLUMNS查看。经常使用到的字段报告OWNER(约束条件所有人)、CONSTRAINT_NAME(约束条件的名称)、CONSTRAINT_TYPE(约束条件的类型)、TABLE_NAME(约束条件的名称)以及COLUMN_NAME(建立了约束条件的列名)

推荐信息