约束的简介 数据的完整性是指数据的正确性和一致性,可以通过定义表时定义完整性约束,也可以通过规则,索引,触发器等。约束分为两类:行级和表级,处理机制是一样的。行级约束放在列后,表级约束放在表后,多个列共用的约束放在表后。 完整性约束是一种规则,不占用任何数据库空间。完整性约束存在数据字典中,在执行SQL或PL/SQL期间使用。用户可以指明约束是启用的还是禁用的,当约束启用时,他增强了数据的完整性,否则,则反之,但约束始终存在于数据字典中。 约束类型 总的来说有五种:唯一性和主键约束、外键约束、检查约束、空值约束、默认值约束, 有五大关键词,UNIQUE和Primary Key, Foreign Key, CHECK, NOT NULL, DEFAULT 1。唯一性和主键约束。 要求某一列,或几列不能有重复的值,建立主键约束和唯一约束时,Oralce会基于约束列自动建立唯一索引;主键约束不允许为NULL,唯一约束允许为NULL,一张表只能建立一个主键约束。唯一性和主键约束类似,只是关键词不同而已,语法一致。 创建约束 CREATE TABLE TABLE_NAME CREATE TABLE TABLE_NAME CREATE TABLE TABLE_NAME 修改约束 ALTER TABLE Table_Name 如果唯一性约束保护多个数据列,那么唯一性约束要作为表约束增加。语法如下: 2。外键约束。 剩下的约束写法都是差不多,这里就不多举例了。 CREATE TABLE TABLE_NAME CREATE TABLE TABLE_NAME 这里需要注意的是ON 后面的内容。这个是关联的关键。与删除修改密切相关。
3。检查约束。 检查列的类型和范围。语法:CONSTRAINT [constraint_name] CHECK (condition); 比如:check(Age >2) 还有两种方式,一种是默认值(default sysdate或者 default 1),一种是限制空值Not Null【NOT NULL只能在列级定义】,这也可以看成是约束,它的作用也是进行数据的完整性控制。 修改默认约束: ALTER TABLE TABLENAME 修改NOT NULL是四个约束当中最特殊的,直接用Modify Col_Name NOT NULL 即可 删除、禁用、启用约束、修改约束名
select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R';【禁用所有外键约束】 select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R';【启用所有外键约束】 select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R';【删除所有外键约束 】 所有约束信息:SELECT * FROM user_constraints (责任编辑:admin) |