- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 约束
本章要点 描述主要的约束类型 建立表的同时创建约束 对已存在的表添加、删除约束 禁用、启用约束 什么是约束 约束在表一级实施相应规则 约束可以阻止删除和其它表具有相关性的表 以下是Oracle中有效的约束类型: NOT NULL UNIQUE Key PRIMARY KEY FOREIGN KEY CHECK 约束准则 给约束命名或者由Oreacle服务器产生一个形式为SYS_Cn的名称 创建约束: 创建表的同时便创建约束 表创建以后再创建约束 在列或者表一级定义约束 在数据字典中可以查询约束 定义约束 定义约束 列约束级 表约束级 NOT NULL约束 确保该列不允许存放空值 NOT NULL 约束 在列一级上定义约束 UNIQUE 约束 UNIQUE 约束 可以定义在表或列一级 PRIMARY KEY 约束 PRIMARY KEY 约束 可以定义在表或列一级 FOREIGN KEY 约束 FOREIGN KEY 约束 可以定义在表或列一级 FOREIGN KEY 约束中的关键字 FOREIGN KEY 在表或列一级上定义外键 REFERENCES 标识父表及相应的列 ON DELETE CASCADE 如果删除父表中的记录则允许级联删除子表中相关连的记录 CHECK约束 定义每条记录都必须满足的条件 表达式不允许使用: 对伪列的引用,例如: CURRVAL, NEXTVAL, LEVEL及 ROWNUM 可以调用SYSDATE, UID, USER及 USERENV 函数 对其它记录其它值的查询 添加约束 添加、删除但不是删除约束 启用一个已经禁用的约束 使用MODIFY子句增加NOT NULL约束 添加约束 为EMP表添加一个 FOREIGN KEY约束,指定雇员的管理员编号必须是在EMP表中已经存在的雇员的雇员编号。 删除约束 从 EMP表删除管理员约束 禁用约束 在ALTER TABLE 语句中使用DISABLE子句可以使约束失效 使用CASCADE 选项可以使与该约束是从属关系的约束同时失效 启用约束 使用ENABLE子句可以激活已经禁用的约束 如果您启用唯一UNIQUE或主键PRIMARY KEY约束,唯一 UNIQUE或主键 PRIMARY KEY索引便自动创建 查询约束 查询 USER_CONSTRAINTS表可以检索出所有约束名称及定义 查询与约束相关的列 在 USER_CONS_COLUMNS中查询与约束相关的列 小结 在Oracle中可以创建下列类型的约束: NOT NULL UNIQUE key PRIMARY KEY FOREIGN KEY CHECK 通过数据字典表 USER_CONSTRAINTS可以查询约束名称及其定义。 NOT NULL 约束(续) NOT NULL约束只能用于列这一级,不能应用在表一级。 上面的例子在ENAME和DEPTNO列上定义了NOT NULL约束,因为没有给这两个约束命名,所以Oracle服务自自动产生一个名字,您也可以在设定约束的同时为该约束命名。 注: 本次课描述的约束例子,在样表中可能不存在,不过可以添加这些约束。 UNIQUE 约束 UNIQUE完整性约束要求列或列集合中的每一个值都是唯一的,也就是说表中没有两条记录在该列或列集合上的值是相同的。具有UNIQUE约束的列或列集合称为唯一关键字UNIQUE KEY。如果唯一关键字是由多个列组成,那么这个列组合称为复合唯一关键字。 UNIQUE约束允许输入空值除非您在相应的列上定义NOT NULL约束。实际上,许多记录都可以包含空值只要没有定义NOT NULL约束,因为空值不等于任何值。所以列(所有列甚至是复合唯一关键字)中含有空值都不会违反UNIQUE约束。 UNIQUE 约束(续) UNIQUE约束可以定义在表或列一级上。一个复合的唯一关键字是在表一级定义的。 上面的例子在DEPTMENT表的DNAME列上应用了UNIQUE约束,约束的名称是DEPT_DNAME_UK。 注: Oracle服务器是通过隐含地在唯一关键字上创建唯一索引的方式实施UNIQUE约束的。 PRIMARY KEY 约束 PRIMARY KEY约束可以为表创建主关键字。每个表只能有一个主关键字。 PRIMARY KEY约束可以是单独的一个列也可以是多个列的组合用于作为表中记录唯一性标志。 这个约束在列或列组合上实施唯一性,并确保主关键字中的列不能含有空值。 PRIMARY KEY 约束(续) PRIMARY KEY约束可以定义在列或表一级上,复合主关键字就是在表这一级上创建的。 上面的例子DEPTMENT表的PRIMARY KEY 约束定义在 DEPTNO 列上,约束的名称为DEPT_DEPTNO_PK。
文档评论(0)