![第8章 约束--《Oracle数据库基础与应用教程》书籍教案_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/f3bc043d-26fc-4905-a58e-ac3265a806d6/f3bc043d-26fc-4905-a58e-ac3265a806d61.gif)
![第8章 约束--《Oracle数据库基础与应用教程》书籍教案_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/f3bc043d-26fc-4905-a58e-ac3265a806d6/f3bc043d-26fc-4905-a58e-ac3265a806d62.gif)
![第8章 约束--《Oracle数据库基础与应用教程》书籍教案_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/f3bc043d-26fc-4905-a58e-ac3265a806d6/f3bc043d-26fc-4905-a58e-ac3265a806d63.gif)
![第8章 约束--《Oracle数据库基础与应用教程》书籍教案_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/f3bc043d-26fc-4905-a58e-ac3265a806d6/f3bc043d-26fc-4905-a58e-ac3265a806d64.gif)
![第8章 约束--《Oracle数据库基础与应用教程》书籍教案_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/f3bc043d-26fc-4905-a58e-ac3265a806d6/f3bc043d-26fc-4905-a58e-ac3265a806d65.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、OracleOracle数据库基础与应用教程数据库基础与应用教程书籍教案书籍教案人民邮电出版社出版人民邮电出版社出版 於岳编写於岳编写作者联系方式:作者联系方式:本书内容:本书内容:本书全面讲述了Oracle数据库的日常管理工作内容。全共14章,包含Oracle简介和安装、简介和安装、Oracle客户端、管理客户端、管理Oracle环境、环境、Oracle体系结构、管理体系结构、管理Oracle存储结构、存储结构、SQL语言、表、约束、视图、同义词和序列、索引、语言、表、约束、视图、同义词和序列、索引、实现数据库安全、实现数据库安全、Data Pump数据导出和导入、数据数据导出和导入、数据库
2、备份和恢复。库备份和恢复。每章结尾提供适量的选择题、简答题和操作题,通过练习和操作实践,帮助读者巩固所学内容。本书适合Oracle爱好者、Oracle工程师、数据库管理员、培训机构以及大专院校计算机专业教师和学生使用。 第第8 8章章 约束约束约束简介约束简介8.1创建约束创建约束8.2修改约束修改约束8.3使用使用OEMOEM管理约束管理约束8.5小结小结8.6删除约束删除约束8.48.1 8.1 约束简介约束简介8.1.1 什么是约束什么是约束 数据的完整性用于确保数据库中的数据的完整性用于确保数据库中的数据遵从一定的商业和逻辑规则。数据遵从一定的商业和逻辑规则。 在在Oracle数据库中
3、,当设计一个数数据库中,当设计一个数据库应用程序时,用于保证数据库中存据库应用程序时,用于保证数据库中存储数据的数据完整性,可以使用约束、储数据的数据完整性,可以使用约束、触发器、应用程序(过程和函数)触发器、应用程序(过程和函数)3种方种方法来实现,在这法来实现,在这3种方法中,因为约束易种方法中,因为约束易于维护,并且具有最好的性能,所以作于维护,并且具有最好的性能,所以作为维护数据完整性的首选。为维护数据完整性的首选。 约束可以是列级别的,也可以是表级别约束可以是列级别的,也可以是表级别的。的。 如果定义约束时没有指定约束的名称,如果定义约束时没有指定约束的名称,Oracle将为约束自动
4、生成一个名称,其格式将为约束自动生成一个名称,其格式为为SYS_Cn,其中,其中,n为自然数。为自然数。 强烈建议在定义约束时,为约束指定一强烈建议在定义约束时,为约束指定一个名称。个名称。 在在Oracle数据库中,约束具有以下数据库中,约束具有以下优点。优点。1声明易用性声明易用性 2集中规则集中规则 3灵活加载数据灵活加载数据 在在Oracle数据库中,约束可以分为数据库中,约束可以分为以下五大类。以下五大类。1非空约束非空约束2主键约束主键约束3唯一约束唯一约束4核查约束核查约束5外键约束外键约束 当父键被修改时,引用约束可以指当父键被修改时,引用约束可以指定在从表中的相关行执行表定在
5、从表中的相关行执行表8-1所示的操所示的操作。作。表表8-18-1操作操作8.2 8.2 创建约束创建约束 可以在创建表时添加约束,也可以在修可以在创建表时添加约束,也可以在修改表时为表添加约束。改表时为表添加约束。 在同一个方案中,约束名必须唯一,并在同一个方案中,约束名必须唯一,并且约束名不能与其他的对象同名。且约束名不能与其他的对象同名。 在定义约束时可以通过在定义约束时可以通过CONSTRAINT为约束指定名称。为约束指定名称。 如果用户没有为约束指定名称,将自动如果用户没有为约束指定名称,将自动为约束创建默认的名称。为约束创建默认的名称。 如果要添加如果要添加NOT NULL约束,必
6、须要约束,必须要使用使用ALTER TABLE . MODIFY语句。语句。 如果要添加如果要添加UNIQUE、PRIMARY KEY、CKECK和和FOREIGN KEY约束,必须要使用约束,必须要使用ALTER TABLE.ADD语句。语句。8.3 8.3 修改约束修改约束8.3.1 修改约束状态修改约束状态 作为约束定义的一部分,可以指定作为约束定义的一部分,可以指定Oracle数据库如何以及何时强制约束,数据库如何以及何时强制约束,从而确定约束状态。从而确定约束状态。 数据库可以指定约束是否限制应用数据库可以指定约束是否限制应用于现有数据或未来数据。于现有数据或未来数据。 如果约束被启
7、用(如果约束被启用(ENABLE),那么),那么数据库检查新的数据输入或更新。数据库检查新的数据输入或更新。 不符合约束的数据不能进入数据库。不符合约束的数据不能进入数据库。禁用(禁用(DISABLE)约束是指使约束临时失)约束是指使约束临时失效。效。 当禁用约束之后,约束规则将不再生当禁用约束之后,约束规则将不再生效。效。 在使用在使用SQL*LOADER或或INSERT载载入数据之前,为了加快数据载入速度,首入数据之前,为了加快数据载入速度,首先应该禁用约束,然后再载入数据。先应该禁用约束,然后再载入数据。 可以设置约束来验证(可以设置约束来验证(VALIDATE)或不验证(或不验证(NO
8、VALIDATE)现有数据。)现有数据。 如果指定了如果指定了VALIDATE,那么现有的,那么现有的数据必须符合约束。数据必须符合约束。 如果指定如果指定NOVALIDATE,那么现有的,那么现有的数据不需要符合约束。数据不需要符合约束。 表表8-2ALTER TABLE语句参数语句参数 使用使用ALTER TABLE . RENAME CONSTRAINT语句可以修改约束的名称。语句可以修改约束的名称。8.4 8.4 删除约束删除约束 如果不再需要表上的约束时,可以如果不再需要表上的约束时,可以使用使用ALTER TABLE . DROP语句将其语句将其从数据库中删除,从数据库中删除,Or
9、acle数据库停止执数据库停止执行约束,然后从数据字典中删除。行约束,然后从数据字典中删除。 表表8-3列出了列出了ALTER TABLE语句各语句各参数的描述信息。参数的描述信息。表表8-38-3ALTER TABLEALTER TABLE语句参数语句参数8.5 8.5 使用使用OEMOEM管理约束管理约束8.5.1 使用使用OEM创建创建PRIMARY KEY约束约束 使用使用Oracle Enterprise Manager按以按以下步骤创建下步骤创建PRIMARY KEY约束。约束。 (1)在)在Oracle Enterprise Manager页面中单页面中单击击【方案方案】【数据库
10、对象数据库对象】【表表】,在,在图图8-1所示页面中,选择表所示页面中,选择表TABLE_1,然后,然后单击单击【编辑编辑】按钮。按钮。图图8-1 8-1 搜索表搜索表(2)在图)在图8-2所示所示【约束条件约束条件】页面中,页面中,【约约束条件束条件】下拉框中选择下拉框中选择【PRIMARY】,然,然后单击后单击【添加添加】按钮。按钮。图图8-2 8-2 【约束条件约束条件】页面页面(3)在图)在图8-3所示页面中,指定所示页面中,指定PRIMARY约束的约束名称、约束列和约束属性,然约束的约束名称、约束列和约束属性,然后单击后单击【继续继续】按钮。按钮。图图8-3 8-3 添加添加PRIM
11、ARYPRIMARY约束条件约束条件 (4)在图)在图8-4所示页面中,显示已经添加所示页面中,显示已经添加PRIMARY约束,最后单击约束,最后单击【应用应用】按钮。按钮。图图8-4 8-4 已经添加已经添加PRIMARYPRIMARY约束约束 使用使用Oracle Enterprise Manager按以按以下步骤创建下步骤创建UNIQUE约束。约束。 (1)在)在Oracle Enterprise Manager页面中单击页面中单击【方案方案】【数据库对象数据库对象】【表表】,选择,选择表表TABLE_1,然后单击,然后单击【编辑编辑】按钮。在图按钮。在图8-5所示所示【约束条件约束条件
12、】页面中,在页面中,在【约束条件约束条件】下拉框中选择下拉框中选择【UNIQUE】,然后单击,然后单击【添添加加】按钮。按钮。图图8-5 8-5 【约束条件约束条件】页面页面(2)在图)在图8-6所示页面中,指定所示页面中,指定UNIQUE约约束的约束名称、约束列和约束属性,然后束的约束名称、约束列和约束属性,然后单击单击【继续继续】按钮。按钮。图图8-6 8-6 添加添加UNIQUEUNIQUE约束条件约束条件 (3)在图)在图8-7所示页面中,显示已经添加所示页面中,显示已经添加UNIQUE约束,最后单击约束,最后单击【应用应用】按钮。按钮。图图8-7 8-7 已经添加已经添加UNIQUE
13、UNIQUE约束约束 使用使用Oracle Enterprise Manager按以下按以下步骤创建步骤创建CHECK约束。约束。 (1)在)在Oracle Enterprise Manager页面中单页面中单击击【方案方案】【数据库对象数据库对象】【表表】,选,选择表择表TABLE_1,然后单击,然后单击【编辑编辑】按钮。在按钮。在图图8-8所示所示【约束条件约束条件】页面中,在页面中,在【约束条约束条件件】下拉框中选择下拉框中选择【CHECK】,然后单击,然后单击【添加添加】按钮。按钮。图图8-8 8-8 【约束条件约束条件】页面页面 (2)在图)在图8-9所示页面中,指定所示页面中,指定
14、CHECK约约束的约束名称、检查条件和约束属性,然束的约束名称、检查条件和约束属性,然后单击后单击【继续继续】按钮。按钮。图图8-9 8-9 添加添加CHECKCHECK约束条件约束条件 (3)在图)在图8-10所示页面中,显示已经添加所示页面中,显示已经添加CHECK约束,最后单击约束,最后单击【应用应用】按钮。按钮。图图8-10 8-10 已经添加已经添加CHECKCHECK约束约束 使用使用Oracle Enterprise Manager按以下步按以下步骤创建骤创建FOREIGN KEY约束。约束。 (1)在)在Oracle Enterprise Manager页面中单击页面中单击【方
15、案方案】【数据库对象数据库对象】【表表】,选择,选择表表TABLE_2,然后单击,然后单击【编辑编辑】按钮。在图按钮。在图8-11所示所示【约束条件约束条件】页面中,在页面中,在【约束条约束条件件】下拉框中选择下拉框中选择【FOREIGN】,然后单击,然后单击【添加添加】按钮。按钮。图图8-11 8-11 【约束条件约束条件】页面页面(2)在图)在图8-12所示页面中,指定所示页面中,指定FOREIGN约束约束的约束名称、约束列、引用表和引用表列,以的约束名称、约束列、引用表和引用表列,以及约束属性,然后单击及约束属性,然后单击【继续继续】按钮。按钮。图图8-12 8-12 添加添加FOREI
16、GNFOREIGN约束条件约束条件 (3)在图)在图8-13所示页面中,显示已经添加所示页面中,显示已经添加FOREIGN约束,最后单击约束,最后单击【应用应用】按钮。按钮。图图8-13 8-13 已经添加已经添加FOREIGNFOREIGN约束约束 使用使用Oracle Enterprise Manager按以下步按以下步骤删除约束。编辑方案骤删除约束。编辑方案SYS中的表中的表TABLE_1,在图在图8-14所示所示【约束条件约束条件】页面中,选择约束页面中,选择约束PK_TABLE_ 1_ID,然后单击,然后单击【删除删除】按钮,按钮,最后单击最后单击【应用应用】按钮。按钮。图图8-14
17、 8-14 删除约束删除约束8.6 8.6 小结小结 约束是强加在表上的规则或条件,确保约束是强加在表上的规则或条件,确保数据库中的数据满足特定的商业逻辑或企业数据库中的数据满足特定的商业逻辑或企业规则,保证数据的完整性,防止无效的数据规则,保证数据的完整性,防止无效的数据进入数据库,从而使数据库的开发和维护都进入数据库,从而使数据库的开发和维护都更加容易。更加容易。 当对表进行当对表进行DML或或DDL操作时,如果操作时,如果造成表中的数据违反约束条件或规则的话,造成表中的数据违反约束条件或规则的话,系统就会拒绝执行这个操作。系统就会拒绝执行这个操作。 在在Oracle数据库中,约束可以分为
18、数据库中,约束可以分为非空约束、主键约束、唯一约束、核查非空约束、主键约束、唯一约束、核查约束和外键约束五大类。约束和外键约束五大类。 可以在创建表时添加约束,也可以可以在创建表时添加约束,也可以在修改表时为表添加约束。如果要添加在修改表时为表添加约束。如果要添加NOT NULL约束,必须要使用约束,必须要使用ALTER TABLE . MODIFY语句。如果要添加语句。如果要添加UNIQUE、PRIMARY KEY、CKECK和和FOREIGN KEY约束,必须要使用约束,必须要使用ALTER TABLE . ADD语句。语句。 作为约束定义的一部分,可以指定作为约束定义的一部分,可以指定Oracle数据库如何以及何时强制约束,从数据库如何以及何时强制约束,从而确定约束状态。而确定约束状态。 数据库可以指定约束是否限制应用于数据库可以指定约束是否限制应用于现有数据或未来数据。现有数据或未来数据。 如果约束被启用(如果约束被启用(ENABLE),那么),那么数据库检查新的数据输入或更新。数据库检查新的数据输入或更新。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度农业产业工人劳务合作合同示范
- 鄂尔多斯2024年内蒙古鄂尔多斯市杭锦旗乌兰牧骑引进3名专业技术人员笔试历年参考题库附带答案详解
- 英德市四年级上学期11月期中语文试题(含解析)
- 玉溪云南玉溪市司法局招聘编外人员笔试历年参考题库附带答案详解
- 烟台2025年山东烟台黄渤海新区教育体育局招聘高层次人才177人笔试历年参考题库附带答案详解
- 楚雄云南楚雄元谋县消防救援局招聘9人笔试历年参考题库附带答案详解
- 杭州2025年上半年浙江杭州市卫生健康委员会所属九家事业单位招聘74人笔试历年参考题库附带答案详解
- 2025年中国学校课桌椅市场调查研究报告
- 2025年中国化工用电磁阀市场调查研究报告
- 2025至2031年中国黄杆皮头铅笔行业投资前景及策略咨询研究报告
- 商业银行的风险审计与内部控制
- 2024项目管理人员安全培训考试题及参考答案AB卷
- 2025年与商场合作协议样本(5篇)
- 2024年12月青少年机器人技术等级考试理论综合试卷(真题及答案)
- 网络与社交媒体管理制度
- 2025年安徽碳鑫科技有限公司招聘笔试参考题库含答案解析
- 2025年寒假实践特色作业设计模板
- 2024年福建漳州人才发展集团有限公司招聘笔试参考题库附带答案详解
- JTGT F20-2015 公路路面基层施工技术细则
- 马晓宏_《法语》_第一册复习(课堂PPT)
- 道路环卫清扫保洁项目应急处置预案
评论
0/150
提交评论