文档详情

数据库应用-数据完整性实验答案解析.doc

发布:2017-01-11约3千字共9页下载文档
文本预览下载声明
实验5 数据完整性 1.实验目的 (1)掌握Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。 (2)掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_helptext查询规则信息、sp_rename更名规则的方法。 (3)掌握Transact-SQL语句(CREATE DEFAULT、DROP DEFAULT)创建和删除默认对象的方法。 (4)掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询默认对象信息。 (5)掌握SQL Server管理平台和Transact-SQL语句(CREATE TABLE、ALTER TABLE)定义和删除约束的方法,并了解约束的类型。 2.实验内容及步骤 studentsdb数据库创建一个规则,限制所输入的数据为7位0~9的数字。 复制student_info表命名为stu_phone,在stu_phone表中插入一列,列名为电话号码 CHAR(7)。完成以下代码实现该操作。 答: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] 使用系统存储过程sp_bindrule将phone_rule规则绑定到stu_phone表的“电话号码”列上。实现该操作的代码为 答:sp_bindrule???phone_rule?,stu_phone.电话号码 输入以下代码,进行一次插入操作,要求符合规则: --select * from stu_phone --INSERT INTO stu_phone(学号,姓名,电话号码) VALUES(0009,王国强,1234yyy) 答:INSERT?INTO?stu_phone(学号,姓名,电话号码)VALUES(0009,王国强,1234yyy) 使用系统存储过程sp_unbindrule解除stu_phone表的电话号码列phone_rule规则绑定 答: DROP RULE 删除规则phone_rule _unbindrule’stu_phone.性别’ Drop rule stu_S_rule (2)如下图,在管理台建各表的主、外键,同时对成绩表中的学号,课程号建级联更新和级联删除。 图 1 图 2 图 3 以下各题,请参照上图2与图3 课程号外键截图 答: 学号外键截图 答: 学号级联更新、级联删除图 答: 课程号级联更新、级联删除图 答: (3)、数据 创建一个表Employees5,只含EmployeeID,Name,Sex和Education列。将Name设为主键,作为列Name的 约束。对EmployeeID列进行unique约束,并作为表的约束 create table Employees5 (EmployeeID char(6) not null, Name char(10)not null primary key, Sex tinyint, Education char(4), constraint UK_id unique(EmployeeID) ) 删除上题中的创建unique约束 alter table Employees5 drop constraint UK_id 创建新表student,只考虑“号码”和“性别”两列,性别只能包含男或女 create table student ( char(6) not null, 性别 char(2) not null check(性别 in(男,女)) ) 创建新表Salary2,结构与Salary相同,但Salary2表不允许OutCome列大于InCome列create table Salary2 (EmployeeID char(6) not null, InCome float not null, OutCome float not null, check(InCome=OutCome) ) 创建一个表Salary3,要求所有Salary3表上EmployeeID列的值都要出现在Salary2表中,利用参照完整性约束实现,
显示全部
相似文档