1
实验八实现数据完整性
一、实验目的
(1)实现数据完整性的概念及实施数据完整性的重要性。
(2)掌握数据完整性的分类。
(3)掌握完整性约束的添加、删除方法。
(4)掌握通用默认值的创建、实施与删除方法。
(5)掌握规则的创建、实施与删除方法。
(6)掌握级联删除、级联修改方法。
二、实验内容
1、完整性约束的添加、删除
(1)通过SQLServerManagementStudio实施约束
a.为表Student的Birth字段创建检查约束,使输入的生日日期小于系统日期。
altertableStudent_20103277
addconstraintdate_checkcheck(Birth
b.为表Student的Sdept字段,设置默认值约束,默认值取’计算机系’。
createdefaultSdept
as'计算机系'
2
c.为Student表的Sname字段添加唯一性约束。
altertableStudent_20103277
addconstraintUQ_Snameunique(Sname)
d.将SC表的Sno,cno字段设置外键约束,约束名自已取,并允许级联删除与级联更新。若已
存在外键约束,请先删除。
altertableSC_20103277
addconstraintFK_Snoforeignkey(Sno)referencesStudent_20103277(Sno)
--addconstraintFK_Cnoforeignkey(Cno)referencesCour_20103277(Cno)
ondeletecascade
onupdatecascade
(2)使用Transact-SQL语句实施约束约束
a.为Student表的Sno字段添加一个check约束,使学号满足如下条件:学号前四位为2011,学
号后四位为数字字符。
3
altertableStudent_20103277
addconstraintCK_Snocheck(Snolike'2011[0-9][0-9][0-9][0-9]')
b.为Student表中的Birth字段添加一个约束,规定生日应小于入学时间。
altertableStudent_20103277
addconstraintCK_Birthcheck(Birth
c.禁用(a)中实施的Check约束
altertableStudent_20103277
nocheckconstraintCK_Sno
d.重新启用Check约束
altertableStudent_20103277
checkconstraintCK_Sno
e.删除(a)所设置check约束
altertableStudent_20103277
dropconstraintCK_Sno
f.将Student表中的classno字段设置为允许空。
altertableStudent_20103277
altercolumnClassnochar(3)null
4
g.为SC表中的Sno,Cno添加外键约束,约束名自取;并允许级联删除与级联更新。若已存在
外键约束,请先删除。
altertableSC_20103277
addconstraintFK_Snoforeignkey(Sno)referencesStudent_20103277(Sno)
--addconstraintFK_Cnoforeignkey(Cno)referencesCour_20103277(Cno)
ondeletecascade
onupdatecascade
h.为Cour表中的Cname字段添加唯一性约束。
altertableCour_20103277
addunique(Cname)
2、默认值的实施
(1)通过SQLServerManagementStudio实现
a.为数据库Student_info创建一个默认的邮政编码,名称自取,值为:200093。
5
createdefaultDF_postcode
as'200093'
b.将该默认值绑定到Student表中的Postcode列。
sp_bindefaultDF_postcode,'Student_de'
c.将Postcode列上的绑定解除,并删除该默认值。
sp_unbindefault'Student_de'
dropdefaultDF_postcode
6
(2)用Transact-SQL语句重做(1)中的(a)、(b)、(c)。
3、规则的实施
(1)通过SQLServerManagementStudio实现
a.为数据库Student_info创建一个关于性别的取值规则,规则名自取,要求字段的取值仅能
为’男’或’女’。
createruler1_x
as
@Sex='男'or@Sex='女'
b.将该规则绑定到Student表的Sex字段上。
sp_bindruler1_x,'Student_'
7
c.解除Student表的Sex列上的绑定,并删除该规则。
sp_unbindrule'Student_'
dropruler1_Sex
(2)使用Transact-SQLL重做(1)中的(a)、(b)、(c)。
本文发布于:2022-12-27 23:14:20,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/43234.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |