网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 体系架构 > Oracle数据库的完整性约束规则  

Oracle数据库的完整性约束规则

2006-12-18  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

完整性约束用于增强数据的完整性,Oracle提供了5种完整性约束:

    Check
    NOT NULL
    Unique
    Primary
    Foreign key 网管有家www.bitscn.net

  完整性约束是一种规则,不占用任何数据库空间。完整性约束存在数据字典中,在执行SQL或PL/SQL期间使用。用户可以指明约束是启用的还是禁用的,当约束启用时,他增强了数据的完整性,否则,则反之,但约束始终存在于数据字典中。

网管联盟bitsCN_com

  禁用约束,使用ALTER语句 中国网管论坛bbs.bitsCN.com

ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;

网管有家bitscn.net

  或

网管下载dl.bitscn.com

ALTER TABLE policies DISABLE CONSTRAINT chk_gender

网管u家www.bitscn.net

  如果要重新启用约束: 网管u家www.bitscn.net

ALTER TABLE policies ENABLE CONSTRAINT chk_gender
网管网www_bitscn_com

  删除约束 网管bitscn_com

ALTER TABLE table_name DROP CONSTRAINT constraint_name
网管u家www.bitscn.net

  或 网管网www_bitscn_com

ALTER TABLE policies DROP CONSTRAINT chk_gender;
网管联盟bitsCN@com

  Check 约束 网管朋友网www_bitscn_net

  在数据列上Check 约束需要一个特殊的布尔条件或者将数据列设置成TRUE,至少一个数据列的值是NULL,Check约束用于增强表中数据内容的简单的商业规则。用户使用 Check约束保证数据规则的一致性。Check约束可以涉及该行同属Check约束的其他数据列但不能涉及其他行或其他表,或调用函数SYSDATE, UID,USER,USERENV。如果用户的商业规则需要这类的数据检查,那么可以使用触发器。Check约束不保护LOB数据类型的数据列和对象、嵌套表、VARRY、ref等。单一数据列可以有多个Check约束保护,一个Check约束可以保护多个数据列。

网管下载dl.bitscn.com

  创建表的Check约束使用CREATE TABLE语句,更改表的约束使用ALTER TABLE语句。

网管联盟bitsCN_com

  语法: 网管论坛bbs_bitsCN_com

CONSTRAINT [constraint_name] CHECK (condition);
中国网管联盟bitsCN.com

  Check约束可以被创建或增加为一个表约束,当Check约束保护多个数据列时,必须使用表约束语法。约束名是可选的并且如果这个名字不存在,那么oracle将产生一个以SYS_开始的唯一的名字。

网管有家bitscn.net

  例:

网管联盟bitsCN_com

CREATE TABLE policies (policy_id NUMBER, holder_name VARCHAR2(40), gender VARCHAR2(1) constraint chk_gender CHECK (gender in ('M','F'), marital_status VARCHAR2(1), date_of_birth DATE, constraint chk_marital CHECK (marital_status in('S','M','D','W')) );
网管有家www.bitscn.net

  NOT NULL约束

网管bitscn_com

  NOT NULL约束应用在单一的数据列上,并且他保护的数据列必须要有数据值。缺省状况下,ORACLE允许任何列都可以有NULL值。某些商业规则要求某数据列必须要有值,NOT NULL约束将确保该列的所有数据行都有值。 网管u家u.bitsCN.com

  例: 网管网www_bitscn_com

CREATE TABLE policies (policy_id NUMBER, holder_name VARCHAR2(40) NOT NULL, gender VARCHAR2(1), marital_status VARCHAR2(1), date_of_birth DATE NOT NULL );

网管网www_bitscn_com

  对于NOT NULL的ALTER TABLE语句与其他约束稍微有点不同。

网管联盟bitsCN@com

ALTER TABLE policies MODIFY holder_name NOT NULL

网管论坛bbs_bitsCN_com

  网管u家u.bitsCN.com

网管朋友网www_bitscn_net

上一页12 3 4 下一页
TAGs   规则   约束   完整性   数据库   数据   索引   唯一   TABLE   可以      
 上一篇:下一代数据库发展的四大趋势   下一篇:六大数据库集群技术分析和比较
相关文章列表
Oracle数据库的完整性约束规则 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.Oracle基本数据类型内部存储格式-体系架
2.从一条select语句看Oracle数据库查询工作
3.讲解SQL Server定时作业job的设置方法-体
4.Oracle数据库ASM功能详解-体系架构
5.Oracle商务智能套件-体系架构
6.Oracle 10g进程体系学习总结-体系架构
7.数据泵用法详解-体系架构
8.Oracle数据库中获取数据的存储过程示例-
9.sqlplus的autotrace的设置-体系架构
10.Oracle的概念和术语-体系架构
最新推荐文章:
1.数据质量体系结构介绍-体系架构
2.深入讲解"database link"的设置和使用-体
3.讲解Oracle移动数据文件到新分区的过程-
4.提防网络隐患 保护Oracle数据
5.Oracle内存数据库 - TimesTen
6.专家解答 充分认识和利用Oracle 11g
7.Oracle SOA平台之SOA套件概述
8.简析Oracle数据库最大可用性体系结构
9.Oracle体系框架及SQL语句性能探讨
10.了解Oracle存储过程中的角色
网管论坛交流:
·大家来开心一下吧---看了会很开心的东西-
·中国人不可不知道的知识
·@@小鹏◎◎小鹏同志与某位女明星亲密接触
·◎◎小鹏◎◎发现不明生物,居然正在交配
·[图文]^^^版主是什么?????
·泡论坛的女人是好女人
·做个“水性杨花”的女人
·献给mm俱乐部的所有mm
·深圳一集团企业电脑基础应用培训教程
·■■■■十一遊玩照■■■■■