资源描述:
《数据库实验六.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据库系统原理计算机实验教学中心实验六数据完整性实验目的实验环境实验内容实验步骤实验目的熟练掌握在SQLServer2000中用T-SQL语句定义数据完整性,加深对数据完整性的理解。实验环境微型计算机一台。WINDOWS操作系统、SQLServer2000。实验内容数据库的完整性设置实体完整性域完整性参照完整性实验步骤:实体完整性将“student”表的“sno”字段设为主键:当“student”表已存在则执行:altertablestudentaddconstraintpk_snoprimarykey(sn
2、o)当“student”表不存在则执行:Createtablestudent(snoCHAR(5)primarykey,snameCHAR(10),ssexCHAR(2),sageint,sdeptCHAR(4))添加一身份证号字段,设置其惟一性.(注:操作前应删除表中的所有记录)Altertablestudentaddidchar(18)unique(id)3.将“sc”表的“sno”和“cno”设置为主键:当“sc”表已存在则执行altertablescaddconstraintPK_SnoCnoprim
3、arykey(sno,cno)当“sc”表不存在则执行:Createtablesc(snoCHAR(5),cnoCHAR(2),gradeINTNULL,constraintPK_SnoCnoprimarykey(sno,cno))域完整性4.将“ssex”字段设置为只能取“男”,“女”两值;当“student”表已存在则执行:altertablestudentaddconstraintCK_Sexcheck(ssexin('男','女'))当“student”表不存在则执行:Createtablestude
4、nt(snoCHAR(5)primarykey,snameCHAR(10),ssexCHAR(2)check(ssexin('男','女')),sageint,sdeptCHAR(4))5.设置学号字段只能输入数字;altertablestudentaddconstraintCK_Sno_Formatcheck(snolike'[0-9][0-9][0-9][0-9][0-9]')6.设置身份证号的输入格式;altertablestudentaddconstraintCK_ID_Formatcheck((id
5、like'[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_')OR(idlike'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]'))7.设置18位身份证号的第7位到第10位为合法的年份(1900-2050);altertablestudentaddconstraintCK_ID_Fo
6、rmat2check(notlen(id)=18or((convert(smallint,substring(id,7,4))>=1900)and(convert(smallint,substring(id,7,4))<=2050)))参照完整性9.设置男生的年龄必须大于22,女生的年龄必须大于20.AltertablestudentaddconstraintCK_agecheck(sex='男'andsage>=22orsex='女'andsage>=20)10.将“student”表和“sc”表中的“sn
7、o”字段设为参照;当“sc”表已存在则执行:altertablescaddconstraintFP_snoforeignkey(sno)referencesstudent(sno)当“sc”表不存在则执行:Createtablesc(snoCHAR(5)constraintFP_snoforeignkeyreferencesstudent(sno),cnoCHAR(2),gradeINTNULL,constraintPK_SnoCnoprimarykey(sno,cno))验证实体完整性下面的语句用来验证“s
8、c”表中的实体完整性:insertintoscvalues('95002','10',65)insertintoscvalues('95002','10',90)验证域完整性;insertintostudentvalues('95009','张匀','大',20,'CS')验证参照完整性;使用下面的语句“验证”sc表中的“sno”字段的域完整性(假设student表中没有学号为“95998”的学生记