一、Oracle系统一共提供了以下5种约束
1.非空(NOT NULL)约束:所定义的列绝不能为空;
2.唯一(UNIQUE)约束:在表中每一行中所定义的列,其列值不能相同;
3.主键(PARIMARY KEY)约束:唯一标识表中的一行;
4.外键(FOREIGN KEY)约束:用来维护子表(Child Table)和父表(Parent Table)之间的引用完成行;
5.条件(CHECK)约束:表中每行都要满足该约束条件。
二、Oracle约束作用:约束主要在设计表的时候使用,它可以为数据库表提供完整性、引用完整性、用户自定义完整性。有了约束对这个数据库中的数据提供非常好的维护。
引入约束的目的就是防止那些无效或有问题的数据输入表中,维护数据库数据的唯一性。
Oracle中约束关键字constraint。
三、主键约束(即完整性约束)实现方法:
1.在创建表的时候,在列中添加primary key或者用关键字constraint;(△)
2.为已创建好的表中,通过关键字constraint为表中的某一列添加约束。(★)
例:alter table A add constraint PK_A_ID primary key (id);命令是为已创建好的A表的id列添加主键约束。
【实战操作1(对应于上面△)】
Step1:创建B表,并赋予主键约束,如下图:
所以B表中id列的数据不能为空且不能重复。
Step2:先在B表中插入第一行数据,如下图:
Step3:再在B表中插入数据,故意将带有主键约束的id列值重复,如下图:
因此验证了被主键约束的列不能插入重复数据。
Step4:再在B表插入数据,故意将id列对应位置的数据不写(即为空),如下图:
因此验证了被主键约束的列不能为空。
【实战操作2(对应于上面△)】
Step1:在创建C表时利用constraint关键字添加主键约束,如下图:
图中pk是primary key的缩写,这个pk_c_id名字可以随便定义,但是一般用pk标识。
Step2:下面先来验证被主键约束的id列数据能否重复,如下图:
因此验证了被主键约束的列不能插入重复数据。
Step3:下面验证被主键约束的id列能否插入null数据,如下图:
因此验证了被主键约束的列不能为空。
【实战操作3(对应于上面★)】
Step1:查看A表数据,如下图:
Step2:利用上面★为已创建好的A表添加主键约束,如下图:
发现报错,因为当前A表中的id列存在重复数据。
Step3:重复数据怎么删除?先查看rowid再用where rowid=’…’命令删除,如下图:
Step4:此时A表中的id列已没有重复数据,那么可以用上面★为该表添加主键约束,如下图: