Oracle数据完整性和约束性

上传人:平*** 文档编号:12784829 上传时间:2017-10-20 格式:DOC 页数:5 大小:28KB
返回 下载 相关 举报
Oracle数据完整性和约束性_第1页
第1页 / 共5页
Oracle数据完整性和约束性_第2页
第2页 / 共5页
Oracle数据完整性和约束性_第3页
第3页 / 共5页
Oracle数据完整性和约束性_第4页
第4页 / 共5页
Oracle数据完整性和约束性_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Oracle数据完整性和约束性》由会员分享,可在线阅读,更多相关《Oracle数据完整性和约束性(5页珍藏版)》请在金锄头文库上搜索。

1、Oracle 数据完整性和约束性非空约束、主键约束、唯一约束、外键约束、检查约束、默认约束。非空约束空值(NULL)是不存在的值,它既不是 0,也不是空字符串,是不存在,未知的情况。创建表时,表中的列默认是允许为 NULL。语法:创建表时添加非空约束 Create table tt1(Bookno number(4) not null,Bookname varchar2(10);为已经创建的表添加非空约束Alter table tt1 modify bookname not null;注意:如果 bookname 中已经存在 为 null 的数据时,则添加 not null 约束时会失败,Or

2、acle 会先检查表中所有行对应列是否含有 null 值。删除表列的非空约束Alter table tt1 modify bookname null;主键约束每个表中最多只有一个主键约束,可以是一列组成,也可以是两个或者两个以上组成(组成) 。主键约束列都是不同的,主键约束同时也具有非空约束的特性。行级约束:主键约束由一列组成。表级约束:主键约束由两个或者两个以上的列组成。语法:创建表时添加主键约束Create table tt1(Bookno number(4) primary key,/由系统命名,也可加 constraint 关键字为约束命名Bookname varchar2(10);C

3、reate table tt1(Bookno number(4),/由系统自动分配名称的主键约束Bookname varchar2(10),Constraint bookno_pk primary key(Bookno) /手动创建主键名称的主键约束);注意:如果有多个列组成主键约束,则在 primary key(Bookno)括号内用逗号 隔开列名。在创建表之后添加主键约束Alter table tt1 add constraint bookno_pk primary key(Bookno);/手动为主键命名Alter table tt1 add primary key(Bookno);/系

4、统自动为主键命名Constraint 关键字是用来手动給约束指定名称。注意:如果列中已经存在相同的数据或者 null 的数据,添加主键约束失败。删除主键约束语法:Alter table tt1 drop constraint bookno_pk;唯一性约束唯一性约束强调所在列不允许有相同的值,特点它的列允许有空值,作用保存除主键列外的其他列的唯一性。语法:创建表指定唯一性约束Create table tt1(Bookno number(4) ,Bookname varchar2(10) constraint bookname_uk unique /手动命名);Create table tt1(

5、Bookno number(4) ,Bookname varchar2(10), constraint bookname_uk unique(Bookname ) /手动命名);注意:如果有多个列添加唯一约束,则在 unique(Bookname ) 括号内用逗号 隔开列名。唯一约束加非空约束 等于主键约束。删除唯一性约束语法:Alter table tt1 drop constraint bookname_uk;外键约束一般外键约束会使用两个表进行关联(当然也存在同一个表自连接的情况)。外键是指 当前表 (即外键表)引用表 2(即被引用表) 的某个列或某几个列, 表 2中被引用的列必须具有主

6、键约束或者唯一性约束。 在表 2中被引用的列中不存在的数据不能出现在当前表表对应的列中。如果外键列存储了被引用表中将要被删除的数据,那么对被引用表的删除操作将失败。給已经存在的表添加外键语法:Create table tt1(Bookno number(4) ,Bookname varchar2(10), StuNo number(4);表 2 student 主键 StuNoAlter table tt1 add constraint student_stuno_fk foreign key(StuNo) referfences student(StuNo);如果 外键表 和 被引用表的列名

7、相同,则可以 Alter table tt1 add constraint student_stuno_fk foreign key(StuNo) referfences student;在定义外键时,使用 on 关键字指定引用行为的类型。No action:当删除被引用表中被引用的数据时,违反外键约束,删除失败。这时外键约束的默认引用类型。Set null:当被引用表中被引用列的数据被删除时,外键表中列被设置为 Null。注意,要使用这个关键字,外键列必须支持 NULL 值。Cascade:当被引用表中被引用列的数据被删除时,外键表中对应的数据也将被删除。这叫做级联删除 。语法:Alter

8、table tt1 add constraint student_stuno_fk foreign key(StuNo) referfences student(StuNo) on delete cascade;删除外键约束:语法:Alter table tt1 drop constraint student_stuno_fk;检查约束语法:定义表创建检查约束Create table student(stuno number(4) ,stuname varchar2(10), age int constraint age_ck check (age0 and age 120) disable/

9、检查约束,并禁用约束。);创建表后语法与上面几种约束类似。禁用约束:Alter table disable constraint age_ck ;注意:禁用主键约束的时候,Oracle 会默认删除约束对应的唯一索引;而在重新激活约束时,Oracle 将会重新建立唯一索引。如果需要保留对应的唯一索引,则需要在禁用约束时 使用关键字 keep index (通常将其放在约束名称的后面);当在禁用唯一约束或者主键约束的时候,如果有外键正在引用该列,则无法禁用唯一约束或主键约束。这时可以先禁用外键约束,在禁用唯一约束或主键约束;或者禁用唯一约束或主键约束的时候,使用 cascade 关键字,这样可以级联禁用引用这些列的外键约束。激活约束Alter table enable validate constraint age_ck ;/激活前验证数据,默认是验证。Alter table enable novalidate constraint age_ck ;/激活前不验证数据删除检查约束Alter table drop constraint age_ck ;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号