8实验八__数据库的完整性实验指导书.doc
文本预览下载声明
实验八 实现数据完整性实验指导书
一、实验目的
(1)实现数据完整性的概念及实施数据完整性的重要性。
(2)掌握数据完整性的分类。
(3)掌握完整性约束的添加、删除方法。
(4)掌握通用默认值的创建、实施与删除方法。
(5)掌握规则的创建、实施与删除方法。
(6)掌握级联删除、级联修改方法。
二、实验内容
1、完整性约束的添加、删除
(1)通过SQL Server Management Studio实施约束
a.为表Student的Birth字段创建检查约束,使输入的生日日期小于系统日期。
①、选择Student表,右击→设计,打开Student表
②、选择Birth一行,右击→CHECK约束
③、单击“添加”
④、在表达式中写入:Entrance_dategetdate()
⑤、单击“关闭”退出
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
add sno_num
(sno [ ][ ][ ][1][ ][ ][ ][ ])
b.为Student表中的Birth字段添加一个约束,规定生日应小于入学时间。
alter Student
constraint birth_date
( )
e.删除(a)所设置check约束
f.将Student表中的classno字段设置为允许空。
alter table Student
alter column char(3)
g.为SC表中的Sno,Cno添加外键约束,约束名自取;并允许级联删除与级联更新。若已存在外键约束,请先删除。
①、首先查看SC表中Sno和Cno有无外键约束
②、由上图已知,SC中Sno存在外键约束,则删除
③添加Sno和Cno的外键约束
alter
add FK_SC_Student ( )
Student(Sno)
on update cascade/*级联更新,(相关表格一起更新)*/
on delete cascade/*级联删除,(相关表格相关一起信息删除)*/
alter
add FK_SC_Course ( )
Course(Cno)
on update cascade
on delete cascade
h.为Course表中的Cname字段添加唯一性约束。
table
add AK_Cname ( )
2、默认值的实施
用Transact-SQL语句实现:
(a)、为数据库Student_info创建一个默认的邮政编码,名称自取,值为:200093。
(b)、将该默认值绑定到Student表中的Postcode列。
(c)、将Postcode列上的绑定解除,并删除该默认值。
3、规则的实
显示全部