- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
约束 目标 通过本章学习,您将可以: 描述约束 创建和维护约束 什么是约束 约束是表级的强制规定 约束放置在表中删除有关联关系的数据 有以下五种约束: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK 注意事项 如果不指定约束名 Oracle server 自动按照 SYS_Cn 的格式指定约束名 在什么时候创建约束: 建表的同时 建表之后 可以在表级或列级定义约束 可以通过数据字典视图查看约束 定义约束 定义约束 列级 表级 NOT NULL 约束 保证列值不能为空: NOT NULL 约束 只能定义在列级: UNIQUE 约束 唯一约束(unique) 1)确保其所在字段值不能重复 2)允许空值 3)既可以定义为字段级别也可以定义到表级别 4)可以在一个字段上建立唯一约束 (此字段值不能重复,既可以是表级别也可以是字段级别), 也可以在几个字段上建立唯一约束(这几个字段的组合值不能重复,只能是表级别的) 5)Oracle会自动为建立唯一约束的字段创建索引 字段级别:column_name datatype unique 表级别:constraint uni_name unique(column_name[,..])自定义约束名 或者 unique(column_name[,..]) 系统自动分配约束名 删除约束:alter table 表名 drop constraint 约束名; UNIQUE 约束 UNIQUE 约束 可以定义在表级或列级: PRIMARY KEY 约束 主键约束(primary key) 1)确保所在字段值非空且唯一 2)一个表最多只允许一个主键,当然这个主键可以基于一个字段也可以基于多个字段 3)非联合主键既可以是字段级别的也可以是表级别的,联合主键只能是表级别的 4)oracle会自动为其建立索引 字段级别:column_name datatype primary key 表级别:constraint p_k primary key(column_name[,..])自定义约束名 或者 primary key(column_name[,..])系统自动分配约束名 PRIMARY KEY 约束 PRIMARY KEY 约束 可以定义在表级或列级: FOREIGN KEY 约束 1)确保所在字段的值与另一个表中的字段值有一定的关联关系 2)既可以定义为字段级别也可以定义为表级别 3)被外键关联上的另一个表的字段必须唯一(即此字段必须是 unique或者primary key) FOREIGN KEY 约束 FOREIGN KEY 约束 可以定义在表级或列级: FOREIGN KEY 约束的关键字 FOREIGN KEY: 在表级指定子表中的列 REFERENCES: 标示在父表中的列 ON DELETE CASCADE: 当父表中的列被删除是,子表中相对应的列也被删除 ON DELETE SET NULL: 子表中相应的列置空 CHECK 约束 约束表中某一个或者某些列中可接受的数据值或者数据格式。 CHECK 约束可以应用于一个或者多个列,也可以将多个CHECK 约束应用于一个列。当删除某个表时,对这个表的CHECK 约束也将同时被删除。 以下的表达式是不允许的: 出现CURRVAL, NEXTVAL, LEVEL, 和ROWNUM 伪列 使用 SYSDATE, UID, USER, 和 USERENV 函数 在查询中涉及到其它列的值 添加约束的语法 使用 ALTER TABLE 语句: 添加或删除约束, 但是不能修改约束 有效化或无效化约束 添加 NOT NULL 约束要使用 MODIFY 语句 添加约束 添加约束举例 删除约束 从表 EMPLOYEES 中删除约束 使用CASCADE选项删除约束 无效化约束 在ALTER TABLE 语句中使用 DISABLE 子句将约束无效化。 使用 CASCADE 选项将相关的约束也无效化 激活约束 ENABLE 子句可将当前无效的约束激活 当定义或激活UNIQUE 或 PRIMARY KEY 约束时系统会自动创建UNIQUE 或 PRIMARY KEY索引 级连约束 CASCADE CONSTRAINTS 子句在 DROP COLUMN 子句中使用 在删除表的列时 CASCADE CONSTRAINTS 子句指定将相关的约束一起删除 在删除表的列时 CASCADE CONSTRAINTS 子句同时也删除多列约束 及连约束 及连约束举例: 查询约束 查询数据字典视图 USER_CONSTRAINTS 查询定义约
文档评论(0)