文档详情

数据库 实验9 数据控制(完整性).doc

发布:2016-12-23约7.87千字共32页下载文档
文本预览下载声明
实验9 数据控制(完整性部分) 实验9.1 实体完整性 一、实验目的 学习实体完整性的建立,以及实践违反实体完整性的结果。 二、实验内容与要求 (1)在数据库tempdbforintegrity中建立表Stu_Union,包括sno(char(5)),sname(char(8)),ssex(char(1)),sage(int),sdept(char(20))五个列,对sno进行主键约束,并且在没有违反实体完整性的前提下插入并更新一条记录 CREATE TABLE Stu_Union(sno char(5), sname char(8), ssex char(1), sage int, sdept char(20)) 。 没有什么异常,一切正常 (2)练习违反实体完整性的插入操作。 无法插入 (3)练习违反实体完整性的更新操作。 insert stu_union values(12345,张海,M,22,信工) (4)在数据库tempdbforintegrity中建立表Scholarship,包括M_ID(varchar(30)),Stu_id (char(10)),R_Money(int))三个。首先向该表插入数据,练习当与现有的数据环境不等时,无法建立实体完整性以及参照完整性。 create table Scholarship( M_ID varchar(30),Stu_id char(10),R_Money int) insert Scholarship values(what meaning,12345,10000) insert Scholarship values(null,12346,10000) 实验9.2 参照完整性 一、实验目的 学习建立外键,以及利用FOREIGN KEY…REFERENCES子句以及各种约束保证参照完整性。 二、实验内容 (一)、参照完整性 (1)为练习参照完整性,在数据库tempdbforintegrity中建立表Course,包括cno(char(4)),cname(varchar(50)),cpoints (int)三列,令cno为其主键;并且在表Course中插入数据。为下面的实验步骤做预先准备。 CREATE TABLE COURSE( CNO CHAR(4),CNAME VARCHAR(50) ,CPOINTS INT, PRIMARY KEY(CNO) ) insert course values(1,数据库,3) insert course values(2,数学,3) insert course values(3,物理,4) (2)在数据库tempdbforintegrity中,建立表SC,包括sno,cno及grade三列。令sno和cno分别为参照Stu_Union表以及Course表的外键,设定级联删除,并令(sno,cno)为其主键。在不违反参照完整性的前提下,插入数据。 CREATE TABLE SC( CNO CHAR(4),SNO CHAR(5),GRADE INT PRIMARY KEY(CNO,SNO), FOREIGN KEY (CNO) REFERENCES COURSE(CNO), FOREIGN KEY (SNO) REFERENCES STU_UNION(SNO), ) INSERT SC VALUES(1,35,76) insert sc(cno,sno,grade) values(2,35,88) insert sc(cno,sno,grade) values(3,35,99) (3)练习违反参照完整性的插入数据。 (4)在Stu_Union中删除数据,练习级联删除。 DELETE FROM STU_UNION WHERE SNO=35 解决方案: CREATE TABLE SC( CNO CHAR(4),SNO CHAR(5),GRADE INT PRIMARY KEY(CNO,SNO), FOREIGN KEY (CNO) REFERENCES COURSE(CNO) ON DELETE CASCADE, FOREIGN KEY (SNO) REFERENCES STU_UNION(SNO) ON DELETE CASCADE, ) 删除成功 (5)在Course中删除数据,练习级联删除。 DELETE FROM course WHERE CNO=1 (6)用alter table语句将SC表中的on delete cascade改为on delete restrict。重新插入SC的数据。重复本实验中的(4)、(5),观察结果,分析原因。 ALTER TABLE S
显示全部
相似文档