欢迎来到天天文库
浏览记录
ID:19328308
大小:1.56 MB
页数:13页
时间:2018-10-01
《实验八数据库的完整性》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验八实现数据完整性一、实验目的(1)实现数据完整性的概念及实施数据完整性的重要性。(2)掌握数据完整性的分类。(3)掌握完整性约束的添加、删除方法。(4)掌握通用默认值的创建、实施与删除方法。(5)掌握规则的创建、实施与删除方法。(6)掌握级联删除、级联修改方法。二、实验内容1、完整性约束的添加、删除(1)通过SQLServerManagementStudio实施约束a.为表Student的Birth字段创建检查约束,使输入的生日日期小于系统日期。①、选择Student表,右击→设计,打开Student表
2、②、选择Birth一行,右击→CHECK约束,打开界面如下图所示③、单击“添加”④、在表达式中写入:Entrance_date3、字段设置外键约束,约束名自已取,并允许级联删除与级联更新。(此要求在SQLServer2008R2中无法做出)若已存在外键约束,请先删除。①、选中Sno,右击→单击“关系”,出现如下信息,可见已存在外键约束选中键,点击删除,完成约束删除②、添加约束:选中Sno,右击,选择“关系”,出现如下信息,③、点击添加,并修改④、修改成自己想要的规范和名称⑤、确定,完成⑥、设置Cno的外键同上理(2)使用Transact-SQL语句实施约束a.为Student表的Sno字段添加一个check约束,使学号满足如下条件:学4、号前四位为2011,学号后四位为数字字符。altertableStudentaddconstraintsno_numcheck(snolike'[2][0][1][1][0-9][0-9][0-9][0-9]')b.为Student表中的Birth字段添加一个约束,规定生日应小于入学时间。altertableStudentaddconstraintbirth_datecheck(Entrance_date>Birth)c.禁用(a)中实施的Check约束altertableStudentNOCHECKCON5、STRAINTsno_numd.重新启用Check约束altertableStudentCHECKCONSTRAINTsno_nume.删除(a)所设置check约束altertableStudentdropCONSTRAINTsno_numf.将Student表中的classno字段设置为允许空。altertableStudentaltercolumnclassnochar(3)nullg.为SC表中的Sno,Cno添加外键约束,约束名自取;并允许级联删除与级联更新。若已存在外键约束,请先删除。①、首先查6、看SC表中Sno和Cno有无外键约束sp_helpconstraintSC②、由上图已知,SC中Sno存在外键约束,则删除altertableSCdropconstraintFK_SC_Student3、添加Sno和Cno的外键约束altertableSCaddconstraintFK_SC_Studentforeignkey(Sno)referencesStudent(Sno)onupdatecascadeondeletecascadealtertableSCaddconstraintFK_SC_Cour7、seforeignkey(Cno)referencesCourse(Cno)onupdatecascadeondeletecascadeh.为Course表中的Cname字段添加唯一性约束。altertableCourseaddconstraintAK_Cnameunique(Cname)2、默认值的实施(1)通过SQLServerManagementStudio实现a.为数据库Student_info创建一个默认的邮政编码,名称自取,值为:200093。b.将该默认值绑定到Student表中的Postco8、de列。用企业管理器无法做出c.将Postcode列上的绑定解除,并删除该默认值。用企业管理器无法做出(2)用Transact-SQL语句重做(1)中的(a)、(b)、(c)。(a)、createdefaultpostcodeas'200093'(b)、sp_bindefault'postcode','Student.Postcode'(c)、sp_unbindefault'Student.Postcode'dr
3、字段设置外键约束,约束名自已取,并允许级联删除与级联更新。(此要求在SQLServer2008R2中无法做出)若已存在外键约束,请先删除。①、选中Sno,右击→单击“关系”,出现如下信息,可见已存在外键约束选中键,点击删除,完成约束删除②、添加约束:选中Sno,右击,选择“关系”,出现如下信息,③、点击添加,并修改④、修改成自己想要的规范和名称⑤、确定,完成⑥、设置Cno的外键同上理(2)使用Transact-SQL语句实施约束a.为Student表的Sno字段添加一个check约束,使学号满足如下条件:学
4、号前四位为2011,学号后四位为数字字符。altertableStudentaddconstraintsno_numcheck(snolike'[2][0][1][1][0-9][0-9][0-9][0-9]')b.为Student表中的Birth字段添加一个约束,规定生日应小于入学时间。altertableStudentaddconstraintbirth_datecheck(Entrance_date>Birth)c.禁用(a)中实施的Check约束altertableStudentNOCHECKCON
5、STRAINTsno_numd.重新启用Check约束altertableStudentCHECKCONSTRAINTsno_nume.删除(a)所设置check约束altertableStudentdropCONSTRAINTsno_numf.将Student表中的classno字段设置为允许空。altertableStudentaltercolumnclassnochar(3)nullg.为SC表中的Sno,Cno添加外键约束,约束名自取;并允许级联删除与级联更新。若已存在外键约束,请先删除。①、首先查
6、看SC表中Sno和Cno有无外键约束sp_helpconstraintSC②、由上图已知,SC中Sno存在外键约束,则删除altertableSCdropconstraintFK_SC_Student3、添加Sno和Cno的外键约束altertableSCaddconstraintFK_SC_Studentforeignkey(Sno)referencesStudent(Sno)onupdatecascadeondeletecascadealtertableSCaddconstraintFK_SC_Cour
7、seforeignkey(Cno)referencesCourse(Cno)onupdatecascadeondeletecascadeh.为Course表中的Cname字段添加唯一性约束。altertableCourseaddconstraintAK_Cnameunique(Cname)2、默认值的实施(1)通过SQLServerManagementStudio实现a.为数据库Student_info创建一个默认的邮政编码,名称自取,值为:200093。b.将该默认值绑定到Student表中的Postco
8、de列。用企业管理器无法做出c.将Postcode列上的绑定解除,并删除该默认值。用企业管理器无法做出(2)用Transact-SQL语句重做(1)中的(a)、(b)、(c)。(a)、createdefaultpostcodeas'200093'(b)、sp_bindefault'postcode','Student.Postcode'(c)、sp_unbindefault'Student.Postcode'dr
此文档下载收益归作者所有