Oracle数据完整性和约束性

上传人:桔**** 文档编号:499219289 上传时间:2023-08-04 格式:DOC 页数:5 大小:19.50KB
返回 下载 相关 举报
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约束时会失败,Oracle会先检查表

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

3、(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);/系统自动为主键命名Constrai

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

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

6、存在的数据不能出现在当前表表对应的列中。如果外键列存储了被引用表中将要被删除的数据,那么对被引用表的删除操作将失败。給已经存在的表添加外键语法: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);如果 外键表 和 被引用表的列名相同,则可以 Alter table tt1 add

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

8、_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号