实验6--数据完整性

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

实验6--数据完整性

一、实验目的

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

2.掌握系统存储过程sp_bindrule、

sp_unbindrule绑定和解除绑定规则的操作

方法,以及sp_help、sp_helptext查询规

则信息、sp_rename更名规则的方法。3.掌握Transact-SQL语句(CREATE DEFAULT、DROPDEFAULT)创建和删除默认对象的方法。4.掌握系统存储过程sp_bindefault、

sp_unbindefault绑定和解除绑定默认对象

的操作方法,以及sp_helptext查询规则信

息。

5.掌握SQL Server管理平台和Transact-SQL 语句(CREATE TABLE、ALTER TABLE)定义和

删除约束的方法,并了解约束的类型。

二、实验内容及步骤

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

①复制student_info表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号

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

SELECT *INTO stu_phone FROM student_info

ALTER TABLE stu_phone ADD CHAR(7) NULL

stu_phone表结构如图1-10所示。

图1-10 stu_phone表结构

②创建一个规则phone_rule,限制所输入的

数据为7位0~9的数字。实现该规则的代码为

CREATE phone_rule

AS

@phone LIKE

'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

③使用系统存储过程sp_bindrule将

phone_rule规则绑定到stu_phone表的“电话

号码”列上。实现该操作的代码为

sp_bindrule ,'stu_phone.电话号

码'

④输入以下代码,进行一次插入操作:

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

产生以下出错信息:

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

列的插入或更新与先前的CREATE RULE 语句所指定的规则发生冲突。该语句已终止。冲突发生于

数据库'studentsdb',表'dbo.stu_phone',列'电话号码'。

语句已终止。

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

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

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

(4)删除stu_s_rule规则。

stu_s_rule(stusex_rule更名后规则名)

是否仍然绑定在stu_phone表的“性别”

列上?应如何操作才能删除它?

(5)在studentdb数据库中,建立日期、货币和字符等数据类型的默认对象。

①在查询设计器中,完成以下代码,创建默认对象df_date、df_char、df_money。

--创建日期型默认对象df_date

CREATE df_date

AS '2009-4-12'

GO

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

CREATE DEFAULT df_char

'unknown'

GO

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

CREATE DEFAULT

AS $100

GO

②输入以下代码,在studentsdb数据库中创建stu_fee数据表。

CREATE TABLE stu_fee

(学号 char(10) NOT NULL,

姓名 char(8) NOT NULL,

学费 money,

交费日期 datetime,

电话号码 char(7))

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

图1-11 stu_fee的数据结构

③使用系统存储过程sp_bindefault将默认对象df_money、df_date、df_char分别绑定在

stu_fee表的“学费”、“交费日期”、“电话号码”列上。

df_money,'stu_fee.学费'

GO

sp_bindefault ,'stu_fee.交费日期'

GO

sp_bindefault df_char,'stu_fee.电话号码'

GO

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

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

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

INSERT INTO stu_fee(学号,姓名,学费,交费日期)

VALUES('0001','马东',$110,'2006-5-12')

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

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

'stu_fee.电话号码'

相关文档
最新文档