




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle约束约束QQ:13987796tel飞滕飞概念概念 oracleoracle使用完整性约束防止不合法的数据进入到基使用完整性约束防止不合法的数据进入到基表中。管理员和开发人员可以定义完整性约束,以增强表中。管理员和开发人员可以定义完整性约束,以增强商业规则,限制数据表中的数据,如果一个商业规则,限制数据表中的数据,如果一个DMLDML语句执行语句执行的任何结果破坏了完整性约束,的任何结果破坏了完整性约束,oracleoracle就会回滚语句,就会回滚语句,返回错误信息。返回错误信息。好处好处1.1.在数据库应用的代码中增强了商业规则。在数据库应用的代码中增
2、强了商业规则。2.2.使用存储过程,完整控制对数据的访问。使用存储过程,完整控制对数据的访问。3.3.增强了触发存储数据库过程的商业规则。增强了触发存储数据库过程的商业规则。1.1.域完整性域完整性 域完整性又称为列完整性,指定一个数据集对某一域完整性又称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值。域完整性通常是经个列是否有效和确定是否允许空值。域完整性通常是经过使用有效性检查来实现的,还可以通过限制数据类型、过使用有效性检查来实现的,还可以通过限制数据类型、格式或者可能的取值范围来实现。格式或者可能的取值范围来实现。2.2.实体完整性实体完整性 实体完整性也称行完整性,要
3、求表中的每一行有一实体完整性也称行完整性,要求表中的每一行有一个唯一的标识符,这个标识符就是主关键字。例如,居个唯一的标识符,这个标识符就是主关键字。例如,居民身份证号是唯一的,这样才能唯一地确定某一个人。民身份证号是唯一的,这样才能唯一地确定某一个人。通过索引、通过索引、UNIQUEUNIQUE约束、约束、primary key primary key 约束可实现数据约束可实现数据的实体完整性。的实体完整性。3.3.参照完整性参照完整性 参照完整性也可以称为引用完整性。参照完整行保参照完整性也可以称为引用完整性。参照完整行保证主表中的数据与从表(被参照表)中数据的一致性。证主表中的数据与从表
4、(被参照表)中数据的一致性。在在oracleoracle中,参照完整性的实现是通过定义外键中,参照完整性的实现是通过定义外键(foreign keyforeign key)与主键()与主键(primary keyprimary key)之间的对应关)之间的对应关系实现的。如果在被引用表中的一行被某外关键字引用,系实现的。如果在被引用表中的一行被某外关键字引用,那么这一行既不能被删除,也不能修改主关键字。那么这一行既不能被删除,也不能修改主关键字。主键主键 在表中能唯一标识表的每个数据行的一个或多个表在表中能唯一标识表的每个数据行的一个或多个表列。列。外键外键 如果一个表中的一个字段或若干个字段
5、的组合是另如果一个表中的一个字段或若干个字段的组合是另一个表的主键则称该字段(或若干字段的组合)为该表一个表的主键则称该字段(或若干字段的组合)为该表的外键。的外键。如果定义了两个表之间的参照完整性,则有如下规则如果定义了两个表之间的参照完整性,则有如下规则(1)(1)从表不能引用不存在的键值。从表不能引用不存在的键值。(2)(2)如果主表中的键值更改了,那么在整个数据库中,对如果主表中的键值更改了,那么在整个数据库中,对从表中该键值的所有引用要进行一致的更改。从表中该键值的所有引用要进行一致的更改。(3)(3)如果主表中没有关联的记录,则不能将记录添加到从如果主表中没有关联的记录,则不能将记
6、录添加到从表。表。(4)(4)如果要删除主表中的某个记录,则不能将记录添加到如果要删除主表中的某个记录,则不能将记录添加到从表。从表。完整性约束是通过限制列数据、行数据和表之间的数据完整性约束是通过限制列数据、行数据和表之间的数据来保证数据完整性的有效方法。来保证数据完整性的有效方法。约束的状态约束的状态在在oracleoracle中,完整性约束有以下中,完整性约束有以下4 4种状态种状态(1 1)禁止的非校验状态。禁止的非校验状态表示该约束是不起作)禁止的非校验状态。禁止的非校验状态表示该约束是不起作用的,即使该约束定义依然存储在数据字典中。用的,即使该约束定义依然存储在数据字典中。(2 2
7、)禁止的校验状态。禁止的校验状态表示对约束列的任何修改)禁止的校验状态。禁止的校验状态表示对约束列的任何修改都是禁止的。这是,该约束上的索引都被删除。约束也被禁止。但都是禁止的。这是,该约束上的索引都被删除。约束也被禁止。但是,这时仍然可以向表中有效地添加数据,即使这些数据与约束有是,这时仍然可以向表中有效地添加数据,即使这些数据与约束有冲突也没关系。冲突也没关系。(3 3)允许的非校验状态或强制状态。允许的非校验状态或强制状)允许的非校验状态或强制状态。允许的非校验状态或强制状态可以向表中添加数据,但是与约束有冲突的数据不能添加。如果态可以向表中添加数据,但是与约束有冲突的数据不能添加。如果
8、表中已存在的数据与约束冲突,这些数据依然可以存在。表中已存在的数据与约束冲突,这些数据依然可以存在。(4 4)允许的校验状态。允许的校验状态表示约束处于正常的状态。)允许的校验状态。允许的校验状态表示约束处于正常的状态。这时,表中所有的数据,无论是已有的还是新添加的,都必须满足这时,表中所有的数据,无论是已有的还是新添加的,都必须满足约束条件。约束条件。域完整性的实现域完整性的实现 oracleoracle可以通过可以通过checkcheck约束实现域完整性。约束实现域完整性。CheckCheck约约束实际上是字段输入内容的校验规则,表示一个字段的束实际上是字段输入内容的校验规则,表示一个字段
9、的输入内容必须满足输入内容必须满足checkcheck条件。条件。语法格式语法格式Create table table_nameCreate table table_name(column_name datatype not null | null(column_name datatype not null | nulldefault constraint_expressiondefault constraint_expressionConstraint check_name check(check_expression)Constraint check_name check(check_ex
10、pression) )其中:其中:checkcheck表示定义表示定义checkcheck约束,其中的约束,其中的check_expressioncheck_expression逻辑表逻辑表达式,称为达式,称为checkcheck约束表达式。约束表达式。例:创建例:创建bookbook表表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 numb
11、er(4,1) not null,Constraint ch_cost check(max_lvl=250);修改修改checkcheck约束约束Alter table table_name add (constraint check_name Alter table table_name add (constraint check_name check(check_expression)check(check_expression)删除删除checkcheck约束约束Alter table table_name drop constraint check_nameAlter table ta
12、ble_name drop constraint check_name 实体完整性的实现实体完整性的实现 一个表只能有一个一个表只能有一个primary keyprimary key约束,而且约束,而且primary primary keykey约束中的列不能取空值。约束中的列不能取空值。Primary keyPrimary key约束和约束和uniqueunique约束的区别约束的区别(1)一个数据表只能创建一个primary key约束,但一个表中可以根据需要对不同的列创建若干个unique约束。(2)Primary key 字段的值不允许为null,而unique字段的值可取null。语
13、法语法主键约束主键约束ALTER TABLE table_nameADD CONSTRAINT pk_name PRIMARY KEY (pk_id)UniqueUnique约束约束ALTER TABLE table_nameADD CONSTRAINT uk_nameUNIQUE (column_name,n)参照完整性的实现参照完整性的实现 对于两个相关联的表(主表与从表)进行数据插入对于两个相关联的表(主表与从表)进行数据插入和删除时。通过参照完整性保证它们之间数据的一致性。和删除时。通过参照完整性保证它们之间数据的一致性。利用利用foreign keyforeign key表示外键。表
14、示外键。Primary keyPrimary key创建时候应考虑的因素创建时候应考虑的因素(1)(1)在删除主表之前,必须删除在删除主表之前,必须删除foreign keyforeign key约束。约束。(2)(2)如果不删除或禁止如果不删除或禁止foreign keyforeign key约束,则不能删除主表约束,则不能删除主表(3)(3)在删除包含主表的表空间之前,必须删除在删除包含主表的表空间之前,必须删除foreign key foreign key 约束。约束。语法语法create table table_name(column_name datatype references
15、ref_table(ref_column),n)修改修改Alter table table_nameAdd constraint constraint_nameForeign key (column,n)References ref_table(ref_column,n)Alter tableAlter table的记忆方法的记忆方法Alter table Alter table 命令有许多选项命令有许多选项: :1)1)、你不得不告诉、你不得不告诉OracleOracle你准备你准备alteralter什么表:什么表: Alter table table_nameAlter table ta
16、ble_name2)2)、然后,你准备做什么?、然后,你准备做什么?Adding Adding 一个约束一个约束 ALTER TABLE table_name ADD CONSTRAINTALTER TABLE table_name ADD CONSTRAINT3)3)、强烈建议但不要求为约束定义个名字。约束名不需要放在引号、强烈建议但不要求为约束定义个名字。约束名不需要放在引号里,但会以大写字母形式存储在数据字典里,里,但会以大写字母形式存储在数据字典里, ALTER TABLE temp ADD CONSTRAINT pk_tempALTER TABLE temp ADD CONSTRAI
17、NT pk_tempAlter tableAlter table的记忆方法的记忆方法4)4)、表示约束类型将是、表示约束类型将是Primary KeyPrimary Key,UniqueUnique,Foreign KeyForeign Key,或,或CheckCheck约束约束 ALTER TABLE temp ADD CONSTRAINT pk_temp PRIMARY KEYALTER TABLE temp ADD CONSTRAINT pk_temp PRIMARY KEY5) 5) 、跟在约束类型后面有几种特殊选项,、跟在约束类型后面有几种特殊选项,Primary KeyPrimary Key和和UniqueUnique约约束,需要指定约束的列;束,需要指定约束的列;CheckCheck约束需要指定约束规则。约束需要指定约束规则。 ALTER TABLE temp ADD CONSTRAINT pk_temp PRIMARY KEY ALTER TABLE temp ADD CONSTRAINT pk_temp PRIMARY KEY (ID);(ID);6) 6) 、Primary KeyPrimary Key和和Uni
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 油脂公司浸出车间操作规程
- 互联网公司代理记账与风险控制合同
- 美容化妆品产品区域代理授权协议
- 餐厅厨师食品安全与聘用责任协议
- 个人信用贷款代理服务合同
- 财务部门员工保密与合规协议范本
- 房屋外大门修补方案
- 车辆抵押贷款与车辆抵押权变更协议
- 云南煤矿考试题及答案
- 辐射及危害培训
- 拖欠维修费车辆以车抵债协议范本
- 2025至2030中国复印机行业发展趋势分析与未来投资战略咨询研究报告
- 暑假安全家长会4
- 2024年安徽省泗县卫生局公开招聘试题带答案
- 2025年北京市高考化学试卷真题(含答案)
- 2025年重庆市中考化学试卷真题(含标准答案)
- JG/T 202-2007工程管道用聚氨酯、蛭石绝热材料支吊架
- T/CEMIA 026-2021湿电子化学品技术成熟度等级划分及定义
- MZ调制器完整版本
- 空压机改造合同协议
- 2025公安局招聘辅警考试笔试题及答案
评论
0/150
提交评论