网站大量收购独家精品文档,联系QQ:2885784924

第4章数据库常用对象对象重点.ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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。 注: Oracle服务器会自动为主关键字列创建一个唯一索引。 FOREIGN KEY 约束 FOREIGN KEY可以称为引用完整性约束,用于指定列或列的组合作为一个外键,并且和同一个表或其它表的主关键字或唯一关键字建立连接关系。上面的例子,DEPTNO列被定义为EMP表(称为从属或子表)的外键,该列必须从DEPT表(成为参考或父表)的DEPTNO列中引用值。 外键值必须和父表中的值匹配或者为空值。 FOREIGN KEY 约束(续) FOREIGN KEY 约束可以定义在表或列一级,复合外键要定义在表一级上。 上面的例子在EMPLOYEE表的DEPTNO列上定义了FOREIGN KEY约束,约束名称为 EMP_DEPTNO_FK。 FOREIGN KEY 约束(续) 外键是定义在子表上,并且包含对父表的引用。使用以下联合关键词定义外键: FOREIGN KEY 在表或列一级上定义外键 REFERENCES 标识父表及相应的列 ON DELETE CASCADE 如果删除父表中的记录则允许级联删除子表中相关连的记录 如果没有 ON DELETE CASCADE 选项,如果子表中存在对父表中某些记录的引用,则不能删除父表中这些被引用的记录。 CHECK约束 CHECK约束用于定义每条记录都必须满足的条件,这个条件可以和查询中的条件的结构相同,但是以下情况除外: 引用 CURRVAL、NEXTVAL、LEVEL及 ROWNUM 伪列 调用 SYSDATE、UID、USER及USERENV 函数 对其它记录其它值的查询 一个列可以定义多个CHECK约束,同一个列上CHECK约束的数量没有限制,CKECK约束可以定义在列一级或表一级。 添加约束 使用ALTER TABLE语句可以向存在的表添加约束。 语法中: table 表名 constraint约束名 type 约束类型 column约束影响的列名 约束名称是可选项,如果您没有为约束命名,系统会自动产生约束名称。 指导: 您可以添加、删除、启用、禁用一个约束,但是不能修改它的结构。 您可以使用MODIFY子句向已经存在的列添加 NOT NULL约束。 注: 您可以在表中没有数据时为列添加 NOT NULL约束,因为在为列添加约束不能给已经存在的记录指定值。 添加约束(续) 上面的例子为EMP表创建了一个外键FOREIGN KEY约束,这个约束明确指定管理员必须是EMP表中有效的雇员。 删除约束 要删除约束,您可以从USER_CONSTRAINTS和USER_CONS_COLUMNS数据字典表中查询出相关约束的名称。 然后在ALTER TABLE语句中使用 DROP 子句, CASCADE选项表示是否级联删除与该约束是从属关系的约束。 语法 ALTER TABLE table DROP PRIMARY KEY | UNIQUE (column) | CONSTRAINT constraint [CASCADE]; where: table 表名. column约束所在的列. constraint约束名. 当

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档