实验6 数据库的数据完整性Word文件下载.docx

上传人:b****6 文档编号:18233136 上传时间:2022-12-14 格式:DOCX 页数:18 大小:474.69KB
下载 相关 举报
实验6 数据库的数据完整性Word文件下载.docx_第1页
第1页 / 共18页
实验6 数据库的数据完整性Word文件下载.docx_第2页
第2页 / 共18页
实验6 数据库的数据完整性Word文件下载.docx_第3页
第3页 / 共18页
实验6 数据库的数据完整性Word文件下载.docx_第4页
第4页 / 共18页
实验6 数据库的数据完整性Word文件下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

实验6 数据库的数据完整性Word文件下载.docx

《实验6 数据库的数据完整性Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验6 数据库的数据完整性Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。

实验6 数据库的数据完整性Word文件下载.docx

2013年11月13日

实验预习报告内容原则上应包含实验目的、实验所用主要仪器药品、实验原理与公式、

实验预习疑问等项目。

一、实验目的

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)定义和删除约束的方法,并了解约束的类型。

二、实验准备

1、了解数据完整性的概念。

2、了解创建规则和删除规则的语法,了解绑定规则和解绑规则的语法。

3、了解创建默认对象和删除默认对象的语法,了解绑定规则和解绑默认对象的语法。

4、了解约束的类型、创建约束和删除约束的语法。

三、实验内容

1、完成上机实验指导中的实验6,并回答实验中的实验思考。

具体实验要求看上机实验指导书的15~18页。

实验预习评分:

二、实验原始(数据)记录

实验时间:

2013年11月19日(星期二第五六节)

实验同组人:

如有实验数据表格,学生在实验预习时应画好实验数据表格,供实验时填写数据(本页如

不够,可另附相同规格的纸张)。

指导教师

批阅及签名

签名:

年月日

三、实验报告内容

2013年11月20日

实验报告内容原则上应包含主要实验步骤、实验数据计算(实验操作)结果、实验结果

(疑问)分析等项目。

实施内容:

一、根据实验要求完成实验:

(写明步骤和截图)

0.创建studentsdb数据库及其相应表,并录入数据。

启动查询分析器,运行下面链接的代码即可。

创建数据库代码

1.为sutdentsdb数据库创建一个规则,限制所输入的数据为7位0-9的数字。

(1)复制student_info表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码”。

完成以下代码实现该操作。

SELECT*INTOstu_phoneFROMstudent_info

ALTERTABLEstu_phoneADDCHAR(7)NULLStu_phone表结构如图1-10所示。

图1-10stu_phone表结构

(2)创建一个规则phone_rule,限制所输入的数据为7位0~9的数字。

实现该规则的代码为

CREATEphone_rule

AS

@phoneLIKE`[0-9][0-9][0-9][0-9][0-9][0-9][0-9]

(3)使用系统存储过程sp_bindrule将phone_rule规则绑定到stu_phone表的“电话号码”

列上。

实现该操作的代码为

sp_bindrule,`stu_phone.电话号码`

(4)输入以下代码,进行一次插入操作:

INSERTINTOstu_phone(学号,姓名,电话号码)VALUES(`0009`,`王国强`,`1234yyy`)

产生以下出错信息:

服务器:

消息513,级别16,状态1,行1

列的插入或更新与先前的CREATERULE语句所强制的规则冲突。

改语句已终止。

冲突发生于数据库`studentsdb`,表`stu_phone`,列`电话号码`

试分析:

为什么会产生该出错信息?

如果要实现插入操作,应修改INSERTINTO语句中的哪个值?

phone_rule规则能否对其他操作(如DELETE)进行规则检查?

因为phone_rule限定电话号码只能是0-9的7位数,修改1234yyy

应该不能对其他操作进行规则检查吧,我想?

2.使用企业管理器实现实验内容1的每个操作。

3.创建一个规则stusex_rule,将其绑定到stu_phone表的“性别”列上,保证输入的性别值只能是“男”或“女”。

4.使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule

规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。

5.删除stu_s_rule规则。

注意:

stue_s_rule为stusex_rule更名后规则名,是否仍然绑定在stu_phone表的“性别”列上,应如何操作才能删除它。

所以即便更改了规则名,仍然绑定在性别列上,应先与其绑定的对象解除绑定,再删除

6.在stuedentdb数据库中,建立日期、货币和字符等数据类型的默认对象。

(1)在查询分析其中,完成以下代码,创建默认对象df_date、df_char、df_money。

--创建日期型默认对象df_dateCREATEdf_dateAS`2006-4-12`

GO

----创建字符型默认对象df_char

CREATEDEFAULTdf_char

`unknown`GO

--创建货币型默认对象df_money

CREATEDEFAULTAS$100

(2)输入以下代码,在studentdb数据库中创建stu_fee数据表。

CREATETABLEstu_fee(学号char(10)NOTNULL,姓名char(8)NOTNULL,学费money,

交费日期datetime,

电话号码char(7))

学号

姓名

学费

交费日期

电话号

表stu_fee的数据结构如图1-11所示。

图1-11stu_fee.的数据结构

(3)使用系统存储过程sp-bindefault将默认对象df_date、df_char、df_money分别绑定在stu_fee表的“学费”、“交费日期”、“电话号码”列上。

df-money,'

stu_fee.学费'

GO

Sp_bindefault,'

stu_fee.交费日期'

Sp_bindefaultdf_char,stu_fee.电话号码'

(4)输入以下代码,在stu_fee表进行插入操作:

INSERTINTOstu_fee(学号,姓名)values('

0001'

'

刘卫平'

INSERTINTOstu_fee(学号,姓名,学费)values('

张卫民'

$120)INSERTINTOstu_fee(学号,姓名,学费,交费日期)VALUES('

马东'

$110,'

2006-5-12'

分析stu_fee表中插入记录的各列的值是什么?

(5)完成以下代码解除默认对象df_char的绑定,并删除之。

'

stu_fee.电话号码'

DEFAULTdf_char

按同样的方式,删除默认对象df_date/df_money。

7.使用企业管理器创建默认对象df_date、df_money,并将它们分别绑定到stu_fee表的“学费”、“交费日期”、“电话号码”列上,在插入操作中观察stu_fee表的数据变化情况,完成操作后,删除这些默认对象。

8.为student_info表添加一列,命名为“院系”,创建一个默认对象stu_d_df,将其绑定到student_info表的“院系”列上,时期默认值为“信息院”,对student_info表进行插入操作,操作完成后,删除该默认对象。

分别使用企业管理器和查询分析器实现。

9.在studentsdb数据库中用CREATETABLE语句创建表stu_con,并同时创建约束。

(1)创建表的同时创建约束。

表结构如图1-12所示

列名

数据类型

长度

char

4

8

性别

2

出生日期

datetime

家庭住址

varchar

50

图1-12要创建的表的结构

约束要求如下:

①将学号设置为主键(PRIMARYKEY),主键名为pk_sid。

②为姓名添加唯一约束(UNIQUE),约束名为uk_name。

③为性别添加默认约束(DEFAULT),默认名称为df_sex,其值为“男”。

④为出生日期添加属性值约束(CHECK),约束名为ck_beday,其检查条件为:

出生日期>

’1988-1-1’。

(2)在stu_con表中插入如表1-1所示的数据记录。

表1-1在stu-con表中插入的数据

0009

张小东

1989-4-6

0010

李梅

1983-8-5

0011

王强

1988-9-10

0012王强1989-6-3分析各约束在插入记录时所起的作用,查看插入记录后表中数据与所插入的数据是否一

致?

不一致,因为有约束的存在。

(3)使用ALTERTABLE语句的DROPCONSTRAINT参数项在查询分析器中删除为

stu_con表所建的约束。

再次输入插入数据后的命令的结果

10.用企业管理器完成实验内容9的所有设置。

11.在查询分析器中,为studentsdb数据库的grade表添加外键约束(FOREIGNKEY),要求将“学号”设置为外键,参照表为student_info,外键名为ufk_sid。

注意,因为之前并没有设student_info表中的学号列为主键,所以在设之为外键参照表的时候要先设为主键,设主键之前要先设为非空,如前三句。

还有,前两句执行后,再执行三四句使用系统存储过程sp_help查看grade表的外键信息。

在grade表中插入表1-2所示记录,观察SQLServer会做何处理,为什么?

如何解决所产生的问题?

表1-2

学号课程编号分数

0100000178

因为有外键约束,不太懂具体为什么哎?

使用查询分析器删除grade表的外键fk_sid。

四、实验思考

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

答:

关系图、触发器、约束、默认值、引用完整性、验证。

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

默认值对象与CREATETABLE或ALTERTABLE语句操作表时用默认约束指定的默认值功能相似,两者的区别类似于规则与检查约束在使用上的区别。

默认值对象可以用于多个列或用户定义数据类型。

表的一列或一个用户定义数据类型只能与一个默认值相绑定。

3.在数据库中建立的规则不绑定到到数据表的字段上会起作用吗?

为什么?

答:

不能。

因为创建规则后,规则仅仅只是一个存在于数据库中的对象,并未发生作用。

需要将规则与数据库表或用户定义对象联系起来,即绑定,才能达到创建规则的目的。

实验报告评分:

注:

1、如个别实验的实验报告内容多,实验报告册页面不够写,或有识图、画图要求的,学生应根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。

2、实验报告册属教学运行材料,院系(中心)应按有关规定归档保管。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1