{管理信息化ORACLE}09oracle约束

上传人:卓****库 文档编号:140357748 上传时间:2020-07-29 格式:PPTX 页数:17 大小:205.69KB
返回 下载 相关 举报
{管理信息化ORACLE}09oracle约束_第1页
第1页 / 共17页
{管理信息化ORACLE}09oracle约束_第2页
第2页 / 共17页
{管理信息化ORACLE}09oracle约束_第3页
第3页 / 共17页
{管理信息化ORACLE}09oracle约束_第4页
第4页 / 共17页
{管理信息化ORACLE}09oracle约束_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《{管理信息化ORACLE}09oracle约束》由会员分享,可在线阅读,更多相关《{管理信息化ORACLE}09oracle约束(17页珍藏版)》请在金锄头文库上搜索。

1、Oracle约束,QQ:13987796tel:13578903313滕飞,Oracle约束,概念 oracle使用完整性约束防止不合法的数据进入到基表中。管理员和开发人员可以定义完整性约束,以增强商业规则,限制数据表中的数据,如果一个DML语句执行的任何结果破坏了完整性约束,oracle就会回滚语句,返回错误信息。 好处 1.在数据库应用的代码中增强了商业规则。 2.使用存储过程,完整控制对数据的访问。 3.增强了触发存储数据库过程的商业规则。,Oracle约束,1.域完整性 域完整性又称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值。域完整性通常是经过使用有效性检查来实现的

2、,还可以通过限制数据类型、格式或者可能的取值范围来实现。 2.实体完整性 实体完整性也称行完整性,要求表中的每一行有一个唯一的标识符,这个标识符就是主关键字。例如,居民身份证号是唯一的,这样才能唯一地确定某一个人。通过索引、UNIQUE约束、primary key 约束可实现数据的实体完整性。,Oracle约束,3.参照完整性 参照完整性也可以称为引用完整性。参照完整行保证主表中的数据与从表(被参照表)中数据的一致性。在oracle中,参照完整性的实现是通过定义外键(foreign key)与主键(primary key)之间的对应关系实现的。如果在被引用表中的一行被某外关键字引用,那么这一行

3、既不能被删除,也不能修改主关键字。,Oracle约束,主键 在表中能唯一标识表的每个数据行的一个或多个表列。 外键 如果一个表中的一个字段或若干个字段的组合是另一个表的主键则称该字段(或若干字段的组合)为该表的外键。,Oracle约束,如果定义了两个表之间的参照完整性,则有如下规则 (1)从表不能引用不存在的键值。 (2)如果主表中的键值更改了,那么在整个数据库中,对从表中该键值的所有引用要进行一致的更改。 (3)如果主表中没有关联的记录,则不能将记录添加到从表。 (4)如果要删除主表中的某个记录,则不能将记录添加到从表。 完整性约束是通过限制列数据、行数据和表之间的数据来保证数据完整性的有效

4、方法。,Oracle约束,约束的状态 在oracle中,完整性约束有以下4种状态 (1)禁止的非校验状态。禁止的非校验状态表示该约束是不起作用的,即使该约束定义依然存储在数据字典中。 (2)禁止的校验状态。禁止的校验状态表示对约束列的任何修改都是禁止的。这是,该约束上的索引都被删除。约束也被禁止。但是,这时仍然可以向表中有效地添加数据,即使这些数据与约束有冲突也没关系。 (3)允许的非校验状态或强制状态。允许的非校验状态或强制状态可以向表中添加数据,但是与约束有冲突的数据不能添加。如果表中已存在的数据与约束冲突,这些数据依然可以存在。 (4)允许的校验状态。允许的校验状态表示约束处于正常的状态

5、。这时,表中所有的数据,无论是已有的还是新添加的,都必须满足约束条件。,Oracle约束,域完整性的实现 oracle可以通过check约束实现域完整性。Check约束实际上是字段输入内容的校验规则,表示一个字段的输入内容必须满足check条件。 语法格式 Create table table_name (column_name datatype not null | null default constraint_expression Constraint check_name check(check_expression) ) 其中:check表示定义check约束,其中的check_ex

6、pression逻辑表达式,称为check约束表达式。,Oracle约束,例:创建book表 Create table books (book_id number(10), Book_name varchar2(50) not null, Book_desc varchar2(50) default new book, Max_lvl number(6,2) not null, Trade_price number(4,1) not null, Constraint ch_cost check(max_lvl=250) );,Oracle约束,修改check约束 Alter table tab

7、le_name add (constraint check_name check(check_expression) 删除check约束 Alter table table_name drop constraint check_name,Oracle约束,实体完整性的实现 一个表只能有一个primary key约束,而且primary key约束中的列不能取空值。 Primary key约束和unique约束的区别 (1)一个数据表只能创建一个primary key约束,但一个表中可以根据需要对不同的列创建若干个unique约束。 (2)Primary key 字段的值不允许为null,而un

8、ique字段的值可取null。,Oracle约束,语法 主键约束ALTER TABLE table_nameADD CONSTRAINT pk_name PRIMARY KEY (pk_id) Unique约束ALTER TABLE table_nameADD CONSTRAINT uk_nameUNIQUE (column_name,n),Oracle约束,参照完整性的实现 对于两个相关联的表(主表与从表)进行数据插入和删除时。通过参照完整性保证它们之间数据的一致性。利用foreign key表示外键。 Primary key创建时候应考虑的因素 (1)在删除主表之前,必须删除foreign

9、 key约束。 (2)如果不删除或禁止foreign key约束,则不能删除主表 (3)在删除包含主表的表空间之前,必须删除foreign key 约束。,Oracle约束,语法create table table_name (column_name datatype references ref_table(ref_column) ,n ) 修改 Alter table table_name Add constraint constraint_name Foreign key (column,n) References ref_table(ref_column,n),Oracle约束,Alt

10、er table的记忆方法 Alter table 命令有许多选项:1)、你不得不告诉Oracle你准备alter什么表: Alter table table_name 2)、然后,你准备做什么?Adding 一个约束 ALTER TABLE table_name ADD CONSTRAINT 3)、强烈建议但不要求为约束定义个名字。约束名不需要放在引号里,但会以大写字母形式存储在数据字典里, ALTER TABLE temp ADD CONSTRAINT pk_temp,Oracle约束,Alter table的记忆方法 4)、表示约束类型将是Primary Key,Unique,Forei

11、gn Key,或Check约束 ALTER TABLE temp ADD CONSTRAINT pk_temp PRIMARY KEY 5) 、跟在约束类型后面有几种特殊选项,Primary Key和Unique约束,需要指定约束的列;Check约束需要指定约束规则。 ALTER TABLE temp ADD CONSTRAINT pk_temp PRIMARY KEY (ID); 6) 、Primary Key和Unique约束应当指定索引的表空间名,使用USING INDEX TABLESPACE子句。 ALTER TABLE temp ADD CONSTRAINT pk_temp PRIMARY KEY (ID) USING INDEX TABLESPACE student_index;,漫漫IT路, 你需要过来的高人指点!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

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