ORACLE下数据完整性约束
为了保证数据的完整性和结构的正确性,oracle也有很多约束条件。
1.数据完整性
为了保证数据的完整性,一般对数据列(字段)进行如下约束,主键约束(PRIMARY KEY)、唯一键约束(UNIQUE)、非空约束(NOT NULL)、默认值(DEFAULT)、检查约束(CHECK)、外键约束(FOREIGN KEY)。
1.1 实体完整性约束
要求每一个表中的主键字段都不能为空或者重复,一般实现的方法是添加唯一约束和主键约束。这里选择主键一般的原则是尽量选择单键、主键必须保证唯一性、非空性、一般选择没有意义,用户不关心的字段。
表创建后,添加约束的语句如下:
-- 使用constraint创建指定名称的约束 |
1.2域完整性约束
要求列的值域的完整性,如数据类型、格式和范围、是否允许为空等。一般实现的方法是限制数据类型,添加外键约束、默认值约束、非空约束。
-- 限制sex的取值 |
1.3引用完整性约束
当处理数据时,通过参照另一个相关联的表中的数据,来检查对表的数据的操作是否正确。一般实现方法是添加外键约束。
alter table test |
2.表之间的关系
oracle中表与表之间的关系有一对一、一对多、多对一。
3.数据表的设计范式
数据表的设计范式是没有数据库之分的,每个数据库都是一样的,最基本的三个范式是:确保每列保持原子性;确保表中的每条数据都和主键相关;确保每列都和主键列直接相关,而不是间接相关。
4.修改约束的SQL语法
-- 建表时添加约束 -- 停用约束 ALTER TABLE 表名ADD CONSTRAINT 约束名 UNQUE(status) DISABLE --启用约束 ALTER TABLE 表名ENABLE CONSTRAINT 约束名; -- 查看约束 select * from user_constraints where ...; |