实验六 数据完整性

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六数据完整性

学号:6103114095 姓名:王祥真班级:计科143 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)

(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(学号,姓名) V ALUES('0001','刘卫平')

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

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

插入的信息为:

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

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

(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会做何处理,为什么?如何解决所产生的问题?

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

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

3.实验思考

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

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

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

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

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

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

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

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

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

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

唯一约束:可以在一个字段,一组字段或一个表上定义唯一性约束,保证了不出现相同的值。

相关文档
最新文档