Chapter10约束限制.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Chapter10约束限制

OCP-007-Chapter10 约束限制 ?????????????????????????????????????? 目的 完成本课,可以完成下列事情: 描述约束 创建和管理约束 约束在表一级实施强制的规则,可以防止误删除和误插入 有下列类型的约束: NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK 所有的约束都保存在数据字典中。如果没有给约束起名,系统自己会起一个类似于SYS_Cn的名字。可以从USER_CONTRAINS中查看已经定义的约束。 CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint], ... [table_constraint][,...]); 列一级的约束:column [CONSTRAINT constraint_name] constraint_type 表一级的约束: column,... [CONSTRAINT constraint_name] constraint_type (column, ...) 表一级不能定义NOT NULL约束 对于组合的唯一性约束,只能用于表一级 Oracle服务器隐式的创建了一个唯一性索引来保证UNIQUE约束 Primary Key可以在列一级和表一级定义,组合的Primary Key只能在表一级定义。一个表只能有一个Primary Key。当创建Primary Key约束时,一个唯一索引会自动在该列创建。 FOREIGN KEY(外键,也称为参照完整性约束),指定一列或者一个列的组合作为外键,和同一张表或者不同表中的primary key或者unique key建立关系。外键所在的表称为子表,所参考的表称为父表。在列一级定义外键时不出现foreign key字样。 外键的值必须在主键上已经存在,或者为NULL 外键是基于数据值的,纯粹是逻辑上的关系,不是物理的,也不是指针 CREATE TABLE employees (... department_id NUMBER(4) CONSTRAINT emp_deptid_fk REFERENCES departments(department_id), ... ) --列一级 CONSTRAINT emp_dept_fk FOREIGN KEY (department_id) REFERENCES departments(department_id) --表一级 ON DELETE CASCADE:当父表中的行删除时,子表中的相应行也删除 ON DELETE SET:当父表中的行删除时,自表中相应行设为NULL CHECK约束不允许下列表达式: CURRVAL, NEXTVAL, LEVEL, and ROWNUM伪列 对系统SYSDATE, UID, USER, and USERENV函数的调用 对表中其他行或者列的查询 添加约束 ALTER TABLE table ADD [CONSTRAINT constraint] type (column); 添加或者删除一个约束,不是更改它的定义;启用或者禁用约束;使用MODIFY子句来添加NOT NULL约束,且此时要求该列每一行都有值或者是个空表。 ALTER TABLE employees ADD CONSTRAINT emp_manager_fk FOREIGN KEY(manager_id) REFERENCES employees(employee_id); 删除约束 ALTER TABLE table DROP PRIMARY KEY | UNIQUE (column) | CONSTRAINT constraint [CASCADE]; 可以从USER_CONSTRAINTS或者USER_CONS_COLUMNS查到相关的约束信息,然后删除掉。CASCADE选项用来把依赖性的约束也一起删掉。 可以临时禁用约束 ALTER TABLE table DISABLE CONSTRAINT constraint [CASCADE]; 可以在CREATE TABLE或者ALTER TABLE语句中使用DISABLE子句 CASCADE选项会同时禁用依赖的约束 禁用唯一性约束或者主键约束会导致删除唯一性索引 启用约束 ALTER TABLE table ENABLE CONSTRAINT constraint; 启用主键约束时,前面使用CASCADE禁用的依赖约束不会自动生效 CASCADE CONSTRAINTS子句伴随DROP COLUMN子句一起使用,用来删除所有和被删除的列相关的参考完整性约束,同

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档