资源描述:
《数据库实验数据控制(完整性).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验9数据控制<完整性部分)实验9.1实体完整性一、实验目的学习实体完整性的建立,以及实践违反实体完整性的结果。二、实验内容与要求<1)在数据库tempdbforintegrity中建立表Stu_Union,包括sno(char(5>>,sname(char(8>>,ssex(char(1>>,sage(int>,sdept(char(20>>五个列,对sno进行主键约束,并且在没有违反实体完整性的前提下插入并更新一条记录b5E2RGbCAPCREATETABLEStu_Union(snochar(5>,snamechar(8>,ssexc
2、har(1>,sageint,sdeptchar(20>>32/32。32/32没有什么异常,一切正常<2)练习违反实体完整性的插入操作。32/32无法插入<3)练习违反实体完整性的更新操作。insertstu_unionvalues('12345','张海','M',22,'信工'>32/32<4)在数据库tempdbforintegrity中建立表Scholarship,包括M_ID(varchar(30>>,Stu_id(char(10>>,R_Money(int>>三个。首先向该表插入数据,练习当与现有的数据环境不等时,无法建立实体
3、完整性以及参照完整性。p1EanqFDPwcreatetableScholarship(M_IDvarchar(30>,Stu_idchar(10>,R_Moneyint>insertScholarshipvalues('whatmeaning','12345',10000>insertScholarshipvalues(null,'12346',10000>32/3232/32实验9.2参照完整性一、实验目的学习建立外键,以及利用FOREIGNKEY…REFERENCES子句以及各种约束保证参照完整性。二、实验内容<一)、参照完整性<1)
4、为练习参照完整性,在数据库tempdbforintegrity中建立表Course,包括32/32cno(char(4>>,cname(varchar(50>>,cpoints(int>三列,令cno为其主键;并且在表Course中插入数据。为下面的实验步骤做预先准备。DXDiTa9E3dCREATETABLECOURSE(CNOCHAR(4>,CNAMEVARCHAR(50>,CPOINTSINT,PRIMARYKEY(CNO>>insertcoursevalues('1','数据库',3>insertcoursevalues('2','
5、数学',3>insertcoursevalues('3','物理',4><2)在数据库tempdbforintegrity中,建立表SC,包括sno,cno及grade三列。令sno和cno分别为参照Stu_Union表以及Course表的外键,设定级联删除,并令,SNOCHAR(5>,GRADEINTPRIMARYKEY(CNO,SNO>,FOREIGNKEY(CNO>REFERENCESCOURSE(CN
6、O>,FOREIGNKEY(SNO>REFERENCESSTU_UNION(SNO>,>INSERTSCVALUES('1','35',76>insertsc(cno,sno,grade>values('2','35',88>insertsc(cno,sno,grade>values('3','35',99>32/32<3)练习违反参照完整性的插入数据。<4)在Stu_Union中删除数据,练习级联删除。DELETEFROMSTU_UNIONWHERESNO='35'解决方案:CREATETABLESC(CNOCHAR(4>,SNOCHAR
7、(5>,GRADEINTPRIMARYKEY(CNO,SNO>,FOREIGNKEY(CNO>REFERENCESCOURSE(CNO>ONDELETECASCADE,FOREIGNKEY(SNO>REFERENCESSTU_UNION(SNO>ONDELETECASCADE,>32/32删除成功<5)在Course中删除数据,练习级联删除。DELETEFROMcourseWHERECNO='1'<6)用altertable语句将SC表中的ondeletecascade改为ondelete32/32restrict。重新插入SC的数据。重复
8、本实验中的<4)、<5),观察结果,分析原因。5PCzVD7HxAALTERTABLESCDROPCONSTRAINTFK_SC_Sno。ALTERTABLESCADDCONST