试验6 数据完整性_第1页
试验6 数据完整性_第2页
试验6 数据完整性_第3页
试验6 数据完整性_第4页
试验6 数据完整性_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——试验6数据完整性试验6数据完整性

一、试验目的

1.把握企业管理器和Transact-SQL语句(CREATERULE、DROPRULE)创立和删除规则的方法。

2.把握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_help、sp_helptext查询规则信息,sp_rename更名规则的方法。

3.把握企业管理器和Transact-SQL语句(CREATEDEFAULT、DROPDEFAULT)创立和删除默认对象的方法。

4.把握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_help、sp_helptext查询规则信息,sp_rename更名规则的方法。

5.把握企业管理器和Transact-SQL语句(CREATETABLE、AKTERTABLE)定义和删除约束的方法,并了解约束的类型。

二、试验准备

1.2.3.4.

了解数据完整性概念。

了解创立规则和删除规则的语法,了解绑定规则和解除绑定规则的语法。

了解创立默认对象和删除默认对象的语法,了解绑定和删除绑定默认对象的语法。了解约束的类型,创立约束和删除约束的语法。

三、试验内容和步骤

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

(1)复制student_info表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码〞。完成以下代码实现该操作。

SELECT*INTOstu_phoneFROMstudent_info

ALTERTABLEstu_phoneADD__colomn电话号码__CHAR(7)NULL

Stu_phone表结构如图1-10所示。12学号00010002姓名刘卫平张为民性别男男出生日期1980-10-0100:00:00.000家庭住址衡山市东风路78号备注NULLNULL电话号码NULLNULL1980-12-0200:00:00.000东阳市八一北路25号图1-10stu_phone表结构

(2)创立一个规则phone_rule,限制所输入的数据为7位0~9的数字。实现该规则的代码为

CREATE___RULE___phone_ruleAS

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

(3)使用系统存储过程sp_bindrule将phone_rule规则绑定到stu_phone表的“电话号码〞列上。实现该操作的代码为

sp_bindrule__phone_rule___,`stu_phone.电话号码`

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

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

产生以下出错信息:

服务器:消息513,级别16,状态1,行1

列的插入或更新与从前的CREATERULE语句所强制的规则冲突。改语句已终止。冲突发生于数据库`studentsdb`,表`stu_phone`,列`电话号码`

试分析:为什么会产生该出错信息?假使要实现插入操作,应修改INSERTINTO语句中的哪个值?phone_rule规则能否对其他操作(如DELETE)进行规则检查?

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

插入不成功,错误原因在于违反前述的规则约束(即'y'不在'0-9'之内);应修改'1234yyy'中的'yyy',使之均在0-9范围之内;phone_rule规则只对插入和修改进行规则检查,而删除不进行规则检查.

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

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

CREATERULEstusex_rule

AS

@性别in(‘男’,’女’)

sp_bindrulestusex_rule‘stu_phone.性别’

4.使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。

EXCUTEsp_helpstusex_rule

EXCUTEsp_helptextstusex_rule

EXCUTEsp_renamestusex_rule,stu_s_rule

5.删除stu_s_rule规则。答:应率先解除绑定再删除

EXCUTEsp_unbindrule‘stu_phone.性别’DROPstu_s_rule

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

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

--创立日期型默认对象df_dateCREATEDEFAULTdf_dateAS`2023-4-12`GO

创立字符型默认对象df_charCREATEDEFAULTdf_charAS`unknown`GO

--创立货币型默认对象df_moneyCREATEDEFAULTdf_moneyAS$100GO

(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表的“学费〞、“交费日期〞、“电话号码〞列上。

Sp_bindefaultdf_money,'stu_fee.学费'GO

sp_bindefaultdf_date,'stu_fee.交费日期'

GO

Sp_bindefaultdf_char,'stu_fee.电话号码'GO

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

INSERTINTOstu_fee(学号,姓名)values('0001','刘卫平')

INSERTINTOstu_fee(学号,姓名,学费)values('0001',张卫民',$120)INSERTINTOstu_fee(学号,姓名,学费,交费日期)VALUES('0001','马东',$110,'2023-5-12')分析stu_fee表中插入记录的各列的值是什么?0001刘卫平$1002023-4-120001张卫民$1202023-4-120001马东$1102023-5-12

(5)完成以下代码解除默认对象df_char的绑定,并删除之。按同样的方式,删除默认对象df_date/df_money。EXCUTEunbindefault'stu_fee.电话号码'DROPDEFAULTdf_char

EXCUTEunbindefault'stu_fee.交费日期'DROPDEFAULTdf_date

EXCUTEunbindefault'stu_fee.学费'DROPDEFAULTdf_money

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

具体操作。

8.为student_info表添加一页,命名为“院系〞,创立一个默认对象stu_d_df,将其绑定到student_info表的“院系〞列上,时期默认值为“信息院〞,对student_info表进行插入操作,操作完成后,删除该默认对象。分别使用企业管理器和查询分析器实现。

ALTERTABLEstudent_info

ADD院系GO

CREATEDEFAULTstu_d_dfAS‘信息院’GO

sp_bindefaultstu_d_df‘student_info.院系’

GO

EXCUTEunbindefault'stu_info.院系'DROPDEFAULTstu_d_df

9.在studentsdb数据库中用CREATETABLE语句创立表stu_con,并同时创立约束。(1)创立表的同时创立约束。表结构如图1-12所示列名学号姓名性别出生日期家庭住址数据类型charcharchardatetimevarchar长度482850图1-12要创立的表的结构约束要求如下:

①将学号设置为主键(PRIMARYKEY),主键名为pk_sid。②为姓名添加唯一约束(UNIQUE),约束名为uk_name。③为性别添加默认约束(DEFAULT),默认名称为df_sex,其值为“男〞。④为出生日期添加属性值约束(CHECK),约束名为ck_beday,其检查条件为:出生日期>’1988-1-1’。

CREATETABLEstu_con学号char(4)

CONSTRAINTpk_sidPRIMARYKEY姓名char(8)

CONSTRAINTuk_nameUNIQUE性别char(2)

CONSTRAINTdf_sexDEFAULT‘男’出生日期datetime(8)

CONSTRAINTck_be

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论