数据库的完整性(共13页).doc
精选优质文档-倾情为你奉上实验 实现数据完整性一、实验目的(1)实现数据完整性的概念及实施数据完整性的重要性。(2)掌握数据完整性的分类。(3)掌握完整性约束的添加、删除方法。(4)掌握通用默认值的创建、实施与删除方法。(5)掌握规则的创建、实施与删除方法。(6)掌握级联删除、级联修改方法。二、实验内容 1、完整性约束的添加、删除(1)通过SQL Server Management Studio实施约束a.为表Student的Birth字段创建检查约束,使输入的生日日期小于系统日期。、选择Student表,右击设计,打开Student表、选择Birth一行,右击CHECK约束,打开界面如下图所示、单击“添加”、在表达式中写入:Entrance_date<getdate()、单击“关闭”退出b.为表Student的Sdept字段,设置默认值约束,默认值取计算机系。选择Sdept一行,在其列属性中修改其默认值c.为Student表的Sname字段添加唯一性约束。选择Sname一行,右击索引/键出现如下界面:单击“添加”,在类型中选择“唯一键”,在列中选择“Sname”,名称自定义最后单击“关闭”退出d.将SC表的Sno,cno字段设置外键约束,约束名自已取,并允许级联删除与级联更新。(此要求在SQL Server2008R2中无法做出)若已存在外键约束,请先删除。、选中Sno,右击单击“关系”,出现如下信息,可见已存在外键约束选中键,点击删除,完成约束删除、添加约束:选中Sno,右击,选择“关系”,出现如下信息,、点击添加,并修改、修改成自己想要的规范和名称、确定,完成、设置Cno的外键同上理 (2)使用Transact-SQL语句实施约束a.为Student表的Sno字段添加一个check约束,使学号满足如下条件:学号前四位为2011,学号后四位为数字字符。alter table Studentadd constraint sno_num check(sno like '20110-90-90-90-9')b.为Student表中的Birth字段添加一个约束,规定生日应小于入学时间。alter table Studentadd constraint birth_date check(Entrance_date>Birth)c.禁用(a)中实施的Check约束alter table Student NOCHECK CONSTRAINT sno_numd.重新启用Check约束alter table Student CHECK CONSTRAINT sno_nume.删除(a)所设置check约束alter table Student drop CONSTRAINT sno_numf.将Student表中的classno字段设置为允许空。alter table Student alter column classno char(3) nullg.为SC表中的Sno,Cno添加外键约束,约束名自取;并允许级联删除与级联更新。若已存在外键约束,请先删除。、首先查看SC表中Sno和Cno有无外键约束sp_helpconstraint SC、由上图已知,SC中Sno存在外键约束,则删除alter table SCdrop constraint FK_SC_Student3、添加Sno和Cno的外键约束alter table SCadd constraint FK_SC_Student foreign key (Sno)references Student(Sno)on update cascadeon delete cascadealter table SCadd constraint FK_SC_Course foreign key (Cno)references Course(Cno)on update cascadeon delete cascadeh.为Course表中的Cname字段添加唯一性约束。alter table Courseadd constraint AK_Cname unique(Cname)2、默认值的实施(1)通过SQL Server Management Studio实现a.为数据库Student_info创建一个默认的邮政编码,名称自取,值为:。b.将该默认值绑定到Student表中的Postcode列。用企业管理器无法做出c.将Postcode列上的绑定解除,并删除该默认值。用企业管理器无法做出(2)用Transact-SQL语句重做(1)中的(a)、(b)、(c)。(a)、create default postcodeas ''(b)、sp_bindefault 'postcode','Student.Postcode'(c)、sp_unbindefault 'Student.Postcode'drop default postcode3、规则的实施(1)通过SQL Server Management Studio实现a.为数据库Student_info创建一个关于性别的取值规则,规则名自取,要求字段的取值仅能为男或女。用企业管理器无法做出b.将该规则绑定到Student表的Sex字段上。用企业管理器无法做出c.解除Student表的Sex列上的绑定,并删除该规则。用企业管理器无法做出(2)使用Transact-SQL重做(1)中的(a)、(b)、(c)。(a)、alter table Studentwith nocheck add constraint sex_check check(sex in ('男','女')create rule Sex_ruleas sex='男' or sex='女'(b)、sp_bindrule 'Sex_rule','Student.Sex'3、sp_unbindrule 'Student.Sex'drop rule sex_rule专心-专注-专业