依据约束的作用范围,可以将Oracle数据库中的约束分为列级约束和表级约束。
依据约束的用途,Oracle数据库中的常用约束主要有5种类型。
(1)主键约束(PRIMARY KEY)
主键可以确保在一个表中没有重复主键值的数据行。作为主键的列或列的组合,其值必须唯一,且不能为NULL。一个表只能定义一个主键约束,同时,Oracle数据库会自动为主键列建立一个唯一性索引,用户可以为该索引指定存储位置和存储参数。主键约束可以定义在列级,也可以定义在表级。
由多列组成的主键称为复合主键,一个复合主键中列的数量不能超过32个。
(2)唯一性约束(UNIQUE)
唯一性约束确保表中值为非NULL的某列或列的组合具有唯一值。如果唯一性约束的列或列的组合没有定义非空约束,则该列或列的组合可以取NULL。与主键约束一样,Oracle数据库自动为唯一性列建立一个唯一性索引,用户可为该索引指定存储位置和存储参数。唯一性约束可以定义在列级或表级。
(3)检查约束(CHECK)(www.daowen.com)
检查约束限制列的取值范围,利用该约束可以实现对数据的启动检查。一个列可以定义多个检查约束,其表达式中必须引用相应的列,且表达式中不能包含子查询、SYSDATE、USER等SQL函数和ROWID、ROWNUM等伪列。检查约束可以定义在列级或表级。
(4)外键约束(FOREIGN KEY)
外键约束的定义使得数据库中表和表之间建立了父子关系。外键约束用来定义子表中列的取值只能是父表中参照列的值,或者为空。父表中被参照的列必须有唯一性约束或主键约束,外键约束既可以定义在一列或多列组合上,又可以定义在列级或表级。
外键可以是自参照约束,即外键可以指向同一个表。
(5)非空约束(NOT NULL)
非空约束限制列的取值不能为NULL,一个表中可以定义多个非空约束。非空约束只能定义在列级。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。