第五章 数据库完整性
5.1 实体完整性
例5.1 将Student表中的Sno属性定义为码
CREATE TABLE Student1
(Sno CHAR(9)primary key,
Sname CHAR(20)NOT NULL,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
PS:因为我已经有Student表了,所以改名为Student1
用这种方法也可以实现:
CREATE TABLE Student1
(Sno CHAR(9),
Sname CHAR(20)NOT NULL,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20),
primary key(Sno)
);
例5.2 将SC表中的Sno,Cno属性组定义为码
CREATE TABLE SC1
(Sno CHAR(9)NOT NULL,
Cno CHAR(4)NOT NULL,
Grade SMALLINT,
primary key(Sno,Cno)
);
5.2 参照完整性
用FOREIGN KEY定义为外码的列。
用REFORENCES指明这些外码参照哪些表的主码。
例5.3 定义SC中的参照完整性
CREATE TABLE SC2
(Sno CHAR(9)NOT NULL,
Cno CHAR (4)NOT NULL,
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),
FOREIGN KEY(Sno)REFERENCES Student(Sno),
FOREIGN KEY(Cno)REFERENCES Course(Cno)
);
例5.4 显式说明参照完整性的违约处理示例
CREATE