已安装有Oracle数据库11g
已安装有Oracle SQL Developer
Windows 操作系统
非空(Not Null)约束用于确保字段值不为空。非空约束是五个约束条件中唯一一个只能定义在列级的约束条件。非空约束条件可以在建表时建立,也可以在建表后建立。如下图:
在数据字典中查询刚刚建立的非空约束条件。
唯一约束条件用于保证字段或者字段的组合不出现重复值。同样唯一约束条件可以在建表时建立,也可以在建表后建立。如下图:
在数据字典中查询唯一约束条件:
主键约束条件从功能上看相当于非空且唯一。主键可以是单字段也可以是多字段组合。在一个白哦上只允许建立一个主键,而其他约束条件则没有明确的个数限制。在建表时建立主键约束:如下图
在建表后建立表级约束如下图:
在数据字典中查看主键约束条件:
外键约束条件定义在两个表的两个字段或一个表的两个字段上,用于保证相关两个字段的关系。外键约束包括两个方面的数据约束:(1):子表上定义的外键的列值,必须从主表被参照的列值中选取,或者为NULL;(2):当主表参照的值被子表参照时,主表的该行记录不允许被删除。
在数据字典中查看外键约束条件:
在外键约束中有两个短语是可选的分别为ON DELETE CASCADE和ON DELETE SET NULL.前一个用于指定级联删除选项,当删除主表数据时会级联删除从表的相关数据;后一个表示当删除主数据时,将从表的外键列值设置为NULL
检查约束条件用来强制在字段上的每个值都要满足Check中定义的条件。
在数据字典中查看检查约束条件:
从字面上我们应该就能知道该功能的用途了。禁用和启用约束条件的语法如下:ALTER TABLE table_nameDISABLE | ENABLE CONSTRAINT constraint_name [CASCADE];
禁用Check约束:
启用Check约束:
如果禁用的是主键约束条件,且这个主键被其他列的外键约束参照,则一种选择是使用CASCADE短语,进行级联操作,另一种是先将外键约束条件禁用或删除,再禁用主键约束。
当希望修改约束条件的名称时,可以使用ALTER TABLE的RENAME CONSTRAINT子句修改约束条件的名称。语法如下:ALTER TABLE table_name RENAME CONSTRAINT old_cons_name TO new_cons_name;具体实现如下图:
英文非空约束只能定义在列级,故在建表后在增加非空约束条件,只能使用ALTER TABLE的MODIFY子句,而不能使用ADD CONSTRAINT子句
一般约束条件的命名规则是:表名_列名_约束条件类型
当约束条件建立好后,可以通过字典USER_CONSTRAINTS和UESR_CONS_COLUMNS查看。经常使用到的字段报告OWNER(约束条件所有人)、CONSTRAINT_NAME(约束条件的名称)、CONSTRAINT_TYPE(约束条件的类型)、TABLE_NAME(约束条件的名称)以及COLUMN_NAME(建立了约束条件的列名)