实验五 数据完整性

更新时间:2024-05-11 10:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验六 数据完整性

1.实验目的

(1)掌握SQL Server管理平台和Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。

(2)掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_helptext查询规则信息、sp_rename更名规则的方法。 (3)掌握SQL Server管理平台和Transact-SQL语句(CREATE DEFAULT、DROP DEFAULT)创建和删除默认对象的方法。 (4)掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询默认对象信息。

(5)掌握SQL Server管理平台和Transact-SQL语句(CREATE TABLE、ALTER TABLE)定义和删除约束的方法,并了解约束的类型。

2.实验内容

(1)为xskc数据库中student表的创建一个规则stu_nj_rule,限制“年级”列所输入的数据为2位0~9的数字。

(2)创建一个规则stusex_rule,将其绑定到student_info表的“性别”列上,保证输入的性别值只能是“男”或“女”。 (3)使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。 删除stu_nj_rule规则。

(因为stu_s_rule是已存在的,所有这里改成stu_ss_rule)

23

(4)在student_db数据库中,建立日期、货币等数据类型的默认值对象。 ① 创建默认对象df_date、df_money。

② 输入以下代码,在xskc数据库中创建stu_fee数据表。 CREATE TABLE stu_fee (学号 char(10) NOT NULL, 姓名 char(8) NOT NULL, 学费 money,

交费日期 datetime, )

③ 使用系统存储过程sp_bindefault将默认对象df_money、df_date分别绑定在stu_fee表的“学费”、“交费日期”列上。

④ 输入以下代码,在stufee表进行插入操作:

INSERT INTO stufee(学号,姓名) VALUES('0001','刘卫平')

INSERT INTO stufee(学号,姓名,学费) VALUES('0001','张卫民',$120)

INSERT INTO stufee(学号,姓名,学费,交费日期) VALUES('0001','马东',$110,'2006-5-12') 分析stu_fee表中插入记录的各列的值是什么?

插入的信息为:

(5) 完成以下代码,解除默认对象df_char的绑定,并删除默认对象。按同样的方式,删除默认对象df_date、df_money。

因为没有创建默认char,而money,date都有创建默认,所以他们的结果为:

24

(6) 在xskc数据库中student表,为出生日期添加属性值约束(CHECK),约束名为ck_bday,其检查条件为:出生日期>'1988-1-1'。

(7) 使用ALTER TABLE语句的DROP CONSTRAINT参数项删除为student表所建的约束ck_bday。

(8) 为xskc数据库的SC学期成绩表添加外键约束(FOREIGN KEY),要求将“学号”设置为外键,参照表为student表,外键名称为fk_sid。

① 使用系统存储过程sp_help查看SC学期成绩表的外键信息。

② 设计在SC学期成绩表中插入各条记录,观察SQL Server会做何处理,为什么?如何解决所产生的问题?

25

学生表里没有该学号,就不能插入数据;应该现在学生表里插入此学号的信息。再对学期成绩表进行插入。

③ 使用查询设计器删除学期成绩表的外键fk_sid。

3.实验思考

1.在SQL Server中,可采用哪些方法实现数据完整性?

答:实体完整性、值域完整性、引用完整性和用户定义完整性。

2.比较默认对象和默认约束的异同。

答:默认值对象与create table 或 alter table语句操作表时用默认约束指定的默认值功能相似,两者的区别类似于规则与检查约束在使用上的区别。默认值对象可以用于多个列或用户定义数据类型。表的一列或一个用户定义数据类型只能与一个默认值相绑定。

3.可以使用SQL Server管理平台创建规则和默认值对象吗?如果能,如何操作呢?

答:能。创建规则:create rule [规则名] as@类名 ‘属性’ ;创建默认值对象:create default [对象名 ] as’属性’.

4.在数据库中建立的规则不绑定到数据表的列上会起作用吗?为什么?

答:不能。因为创建规则后,规则仅仅是一个存在于数据库中的对象。并未发生作用。需要将规则与数据库或用户定义对象联系起来,即绑定才能达到创建规则的目的。

5.请说明唯一约束和主键约束之间的联系和区别。

答:主键:一张表只能定义一个主键,可以包含一个或一个以上的字段,且这些字段的值必须是唯一的。除了主键的字段不允许为空外,其他方面主键和唯一性索引很相似。 唯一约束:可以在一个字段,一组字段或一个表上定义唯一性约束,保证了不出现相同的值。

26

本文来源:https://www.bwwdw.com/article/2ugg.html

Top