Oracle的完整性约束是强加在表上的规则或条件。当对一个表进行DML或DDL操作时,
如果此操作会造成表中的数据违反约束条件或规则,Oracle系统就会拒绝执行这个操作。这样做的好处就是当错误刚出现时就能被Oracle自动的发现,从而使数据库的并发和维护都更加容易。
Oracle系统提供的约束有5种:
*非空约束(not null):所定义的列决不能为空
*惟一约束(unique):在表中每一行中所定义的这个列或这些列的值都不能相同。
*主键约束(primary key):指明一列或几列的组合为该表的主键,主键惟一标识表中的每一行,并且主键不能包括空值。
*外键约束(foreign key):指明一列或几列的组合为外键以维护从表和主表之间的引用完整性。
*条件约束:表中每一行都要满足该约束条件。
约束是加在表上的,因为只有在表中存有数据,可以在创建表时在create table语句中定义约束,也可以在存在的表上利用alter table语句来定义约束,既可以在列一级,也可以在表一级定义约束。约束定义在数据字典中。只能通过数据字典浏览约束,如果在定义约束时没有给出约束的名字,Oracle系统将为该约束自动生成一个额名字:SYS_Cn,其中n为大于零的自然数。
如果此操作会造成表中的数据违反约束条件或规则,Oracle系统就会拒绝执行这个操作。这样做的好处就是当错误刚出现时就能被Oracle自动的发现,从而使数据库的并发和维护都更加容易。
Oracle系统提供的约束有5种:
*非空约束(not null):所定义的列决不能为空
*惟一约束(unique):在表中每一行中所定义的这个列或这些列的值都不能相同。
*主键约束(primary key):指明一列或几列的组合为该表的主键,主键惟一标识表中的每一行,并且主键不能包括空值。
*外键约束(foreign key):指明一列或几列的组合为外键以维护从表和主表之间的引用完整性。
*条件约束:表中每一行都要满足该约束条件。
约束是加在表上的,因为只有在表中存有数据,可以在创建表时在create table语句中定义约束,也可以在存在的表上利用alter table语句来定义约束,既可以在列一级,也可以在表一级定义约束。约束定义在数据字典中。只能通过数据字典浏览约束,如果在定义约束时没有给出约束的名字,Oracle系统将为该约束自动生成一个额名字:SYS_Cn,其中n为大于零的自然数。