数据库完整性
1、实体完整性
1.1 定义实体完整性
-
表级约束
单属性码表级约束
CREATE TABLE Student (Sno CHAR(9), Sname CHAR(20) NOT NULL, Ssex CHAR(2), PRIMARY KEY (Sno) /* 单属性主码表级约束 */ );
多属性码表级约束
CREATE TABLE SC (SNO CHAR(9) NOT NULL, CNO CHAR(4) NOT NULL, GRADE SMALLINT, PRIMARY KEY(SNO,CNO) /* 多个属性构成的主码只能有一种说明方法,即表级约束 */ );
-
列级约束
CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, /* 主码列级约束 */ Sname CHAR(20) NOT NULL, Ssex CHAR(2), PRIMARY KEY (Sno) );
1.2 实体完整性检查和违约处理
1.2.1 检查内容:
-
检查主码值是否唯一,不唯一则拒绝插入或修改。
-
检查主码的各个属性是否为空(多属性主码),为空则不允许进行操作。
2、参照完整性
参照完整性主要用于外键的参照关系
2.1 定义参照完整性
外码参照完整性
CREATE TABLE SC
(Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT,
PRIMARY KEY(Sno,Cno), /* 多个属性构成的主码只能有一种说明方法,即表级约束 */
FOREIGN