ORACLE约束简要说明
来源:互联网 发布:办公室网络布线图片 编辑:程序博客网 时间:2024/06/05 03:48
oracle系统一共提供了以下5种约束:
1、非空(not null)约束:所定义的列不能为空。
2、唯一(unique)约束:在表中每一行中所定义的这个列或这些列的值不能为空。
3、主键(primary key)约束:指定一列或几列的组合为该表的主键,主键唯一标识表中的一行(当然oracle数据库中的表中隐含一个rowid的列,它也唯一标识表中一行),并且主键不能为空值。
4、外键(foreign key)约束:指明一列或几列的组合为外键以维护从表与主表之间的引用完整。
5、条件(check)约束:表中每一行都要满足该约束的条件。
约束是加在表上的,因为表中存有数据。既可以在创建表(create table)时定义约束,也可以在已经存在的表(alter table)上定义约束。
约束可以定义在列一级也可以定义在表一级,查看约束要在oracle的数据字典里浏览,
在建立约束时,可以给出约束名称也可以不给出,oracle系统将为约束自动生成一个名称,格式为SYS_Cn,其中n为大于零的自然数。
当一张表中的约束过多时会影响到oracle数据库的效率(这结论容易推出)。
约束存在4种状态,并且任何一个约束都处于4种中的一种状态!
1、disable novalidate 禁止而无效:表示表中的已有数据没有作约束检查,并且新加入的数据也不会作约束检查。
2、disable validate 禁止而有效:表示表中已有数据作了约束检查,但新加入数据不会检查。
3、enable novalidate 激活而无效:表示表中数据没有约束检查,但新加入的数据会约束检查。
4、enable validate 激活而有效:表示表中数据作了约束检查并且新加入数据也会约束检查。
oracle完整性约束的各种状态之间的变化遵循以下原则:
1、如果在激活约束时没有说明novalidate,就意味着enable validate。
2、如果在禁止约束时没有说明validate,就意味着disable novalidate。
3、如果唯一约束或主键约束从禁止状态变为激活状态时没有索引,oracle系统会自动地为之建立一个唯一索引。相反地会删除这个唯一索引。
4、当任何一个约束从无效变为有效时,oracle系统会检查所有数据。相反则不会。
5、将一个约束从激活无效状态变为激活有效状态时,oracle系统并不阻塞任何读、写操作及其它DDL语句。
- ORACLE约束简要说明
- Oracle SQL Developer使用简要说明
- Oracle SQL Developer 使用简要说明
- Oracle SQL Developer 使用简要说明
- oracle expdp impdp 的简要说明
- Oracle的主要进程简要说明
- oracle数据字典和动态性能视图简要说明
- Oracle 11g 新特性 -- SQL Plan Management 简要说明
- oracle数据库的连接类型TNS简要说明
- 编码规范简要说明
- zhcon使用简要说明
- Grub 安装简要说明
- log4j配置简要说明
- Grub 安装简要说明
- WebConfig配置简要说明
- Tuxedo配置管理简要说明
- fckeditor简要配置说明
- tuxedo配置管理简要说明
- Davinci DM6446 Linux 内核分析——head.S(二)
- 正则表达式 分组捕捉
- ORACLE 绑定变量
- Davinci DM6446 Linux 内核分析——head.S(一)
- Linux Fedora12 下,用脚本批量删除.svn文件夹
- ORACLE约束简要说明
- NFS文件系统
- crontab命令
- 网络分析与网络数据集—转向
- 无助啊……
- informix数据库常用操作
- Davinci DM6446 开发经验谈——loadmodeules.sh详解
- 插件88:输入提示
- Angry Birds for Chrome 升级,带来圣诞新关卡和 Mighty Eagle