数据库应用数据完整性实验答案.docx
- 文档编号:5602469
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:8
- 大小:396.80KB
数据库应用数据完整性实验答案.docx
《数据库应用数据完整性实验答案.docx》由会员分享,可在线阅读,更多相关《数据库应用数据完整性实验答案.docx(8页珍藏版)》请在冰豆网上搜索。
数据库应用数据完整性实验答案
实验5数据完整性
1.实验目的
(1)掌握Transact-SQL语句(CREATERULE、DROPRULE)创建和删除规则的方法。
(2)掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_helptext查询规则信息、sp_rename更名规则的方法。
(3)掌握Transact-SQL语句(CREATEDEFAULT、DROPDEFAULT)创建和删除默认对象的方法。
(4)掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询默认对象信息。
(5)掌握SQLServer管理平台和Transact-SQL语句(CREATETABLE、ALTERTABLE)定义和删除约束的方法,并了解约束的类型。
2.实验内容及步骤
请先附加studentsdb数据库,然后完成以下实验。
(1)主要讲解规则
为studentsdb数据库创建一个规则,限制所输入的数据为7位0~9的数字。
1.复制student_info表命名为stu_phone,在stu_phone表中插入一列,列名为'电话号码'CHAR(7)。
完成以下代码实现该操作。
stu_phone表结构如图1-10所示。
答:
SELECT*INTO stu_phone FROM student_info
ALTER TABLE stu_phone ADD 电话号码CHAR(7)NULL
创建一个规则phone_rule,限制所输入的数据为7位0~9的数字。
实现该规则的代码为
答:
create rule phone_rule
as @电话号码 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
2.使用系统存储过程sp_bindrule将phone_rule规则绑定到stu_phone表的“电话号码”列上。
实现该操作的代码为
答:
sp_bindrule phone_rule ,'stu_phone.电话号码'
3.输入以下代码,进行一次插入操作,要求符合规则:
--select*fromstu_phone
--INSERTINTOstu_phone(学号,姓名,电话号码)VALUES('0009','王国强','1234yyy')
答:
INSERT INTO stu_phone(学号,姓名,电话号码)VALUES('0009','王国强','1234yyy')
4.使用系统存储过程sp_unbindrule解除stu_phone表的'电话号码'列phone_rule规则绑定
答:
5.DROPRULE删除规则phone_rule
答:
exesp_unbindrule’stu_phone.性别’
Droprulestu_S_rule
(2)如下图,在管理台建各表的主、外键,同时对成绩表中的学号,课程号建级联更新和级联删除。
请截图
1.为成绩表的创建外键,如下图
2.成绩表的学号、课程号级联更新和级联删除的创建图
图1
图2
图3
以下各题,请参照上图2与图3
课程号外键截图
答:
学号外键截图
答:
学号级联更新、级联删除图
答:
课程号级联更新、级联删除图
答:
(3)、数据其它约束
1.创建一个表Employees5,只含EmployeeID,Name,Sex和Education列。
将Name设为主键,作为列Name的约束。
对EmployeeID列进行unique约束,并作为表的约束
createtableEmployees5
(EmployeeIDchar(6)notnull,
Namechar(10)notnullprimarykey,
Sextinyint,
Educationchar(4),
constraintUK_idunique(EmployeeID)
)
2.删除上题中的创建unique约束
altertableEmployees5
dropconstraintUK_id
3.创建新表student,只考虑“号码”和“性别”两列,性别只能包含男或女
createtablestudent
(号码char(6)notnull,
性别char
(2)notnull
check(性别in('男','女'))
)
创建新表Salary2,结构与Salary相同,但Salary2表不允许OutCome列大于InCome列createtableSalary2
(EmployeeIDchar(6)notnull,
InComefloatnotnull,
OutComefloatnotnull,
check(InCome>=OutCome)
)
4.
5.创建一个表Salary3,要求所有Salary3表上EmployeeID列的值都要出现在Salary2表中,利用参照完整性约束实现,要求当删除或修改Salary2表上的EmployeeID列时,Salary3表中的EmployeeID值也会随之变化
createtableSalary3
(
EmployeeIDchar(6)notnullprimarykey,
InComefloatnotnull,
OutComefloat(8)notnull,
foreignkey(EmployeeID)
referencesSalary(EmployeeID)
onupdatecascade
ondeletecascade
)
实验名称
数据完整性
实验日期
实验目的
掌握Transact-SQL语句(CREATERULE、DROPRULE)创建和删除规则的方法。
掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_helptext查询规则信息、sp_rename更名规则的方法。
掌握Transact-SQL语句(CREATEDEFAULT、DROPDEFAULT)创建和删除默认对象的方法。
掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询默认对象信息。
掌握SQLServer管理平台和Transact-SQL语句(CREATETABLE、ALTERTABLE)定义和删除约束的方法,并了解约束的类型。
实验环境
Windows7,SQLServer2008
实验内容
按实验步骤完成数据完整性设置。
实验中要求在查询设计器中用语句完成的实验,请在这里填写他们的语句,并标上题号。
试验思考
回答以下问题:
(1)在SQLServer2008中,可采用哪些方法实现数据完整性?
(2)比较默认对象和默认约束的异同。
(3)可以使用SQLServer管理平台创建规则和默认值对象吗?
(4)在数据库中建立的规则不绑定到数据表的列上会起作用吗?
为什么?
(5)请说明唯一约束和主键约束之间的联系和区别。
【手写“回答以下问题”,若空白处不够,请附页完成】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 应用 数据 完整性 实验 答案