ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:503.60KB ,
资源ID:3856417      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3856417.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验6数据完整性.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

实验6数据完整性.docx

1、实验6数据完整性实验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查询规则信

2、息。5掌握SQL Server管理平台和Transact-SQL语句(CREATE TABLE、ALTER TABLE)定义和删除约束的方法,并了解约束的类型。2、实验内容及步骤(1)为studentsdb数据库创建一个规则,限制所输入的数据为7位09的数字。复制student_info表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码”。完成以下代码实现该操作。 SELECT * INTO stu_phone FROM student_infoALTER TABLE stu_phone ADD CHAR(7) NULLstu_phone表结构如图1-10所示。图1

3、-10 stu_phone表结构创建一个规则phone_rule,限制所输入的数据为7位09的数字。实现该规则的代码为CREATE phone_ruleASphone LIKE 0-90-90-90-90-90-90-9使用系统存储过程sp_bindrule将phone_rule规则绑定到stu_phone表的“电话号码”列上。实现该操作的代码为sp_bindrule ,stu_phone.电话号码输入以下代码,进行一次插入操作: INSERT INTO stu_phone(学号,姓名,电话号码) VALUES(0009,王国强,1234yyy)产生以下出错信息: 消息513,级别16,状态0

4、,第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_

5、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_dateCREATE df_dateAS 2009-4-12GO-创建字符型默认对象df_charCREATE DEFAULT df_cha

6、r unknownGO-创建货币型默认对象df_moneyCREATE DEFAULT AS $100GO输入以下代码,在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表的“学费”、“

7、交费日期”、“电话号码”列上。 df_money,stu_fee.学费GOsp_bindefault ,stu_fee.交费日期GOsp_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表中插入记录

8、的各列的值是什么?完成以下代码,解除默认对象df_char的绑定,并删除之。 stu_fee.电话号码 DEFAULT df_char按同样的方式,删除默认对象df_date、df_money。(6)为student_info表添加一列,命名为“院系”,创建一个默认对象stu_d_df,将其绑定到student_info表的“院系”列上,使其默认值为“信息院”,对student_info表进行插入操作,操作完成后,删除该默认对象。(7)在studentsdb数据库中用CREATE TABLE语句创建表stu_con,并同时创建约束。创建表的同时创建约束。表结构如图1-12所示。图1-12 要创

9、建的表的结构约束要求如下: 将学号设置为主键(PRIMARY KEY),主键名为pk_sid。为姓名添加唯一约束(UNIQUE),约束名为uk_name。为性别添加默认约束(DEFAULT),默认名称为df_sex,其值为“男”。为出生日期添加属性值约束(CHECK),约束名为ck_bday,其检查条件为:出生日期1988-1-1。在stu_con表中插入如表1-1所示的数据记录。 表1-1 在stu_con表中插入的数据学号姓名性别出生日期家庭住址0009张小东1989-4-60010李梅女1983-8-50011王强1988-9-100012王强1989-6-3分析各约束在插入记录时所起的

10、作用,查看插入记录后表中数据与所插入的数据是否一致?使用ALTER TABLE语句的DROP CONSTRAINT参数项在查询设计器中删除为stu_con表所建的约束。(8)用SQL Server管理平台完成实验内容7的所有设置。(9)在查询设计器中,为studentsdb数据库的grade表添加外键约束(FOREIGN KEY),要求将“学号”设置为外键,参照表为student_info,外键名称为fk_sid。使用系统存储过程sp_help查看grade表的外键信息。在grade表中插入一条记录,学号为0100,课程编号为0001,分数为78。观察SQL Server会做何处理,为什么?如

11、何解决所产生的问题?使用查询设计器删除grade表的外键fk_sid。三、实验结果1为studentsdb数据库创建一个规则,限制所输入的数据为7位09的数字。(1)复制学生表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码”。完成以下代码实现该操作。SELECT * INTO stu_phone FROM 学生表ALTER TABLE stu_phone ADD 电话号码 CHAR(7)NULLstu_phone表结构如图1-10所示。图1-10 stu_phone表结构(2)创建一个规则phone_rule,限制所输入的数据为7位09的数字create rule

12、 phone_ruleas 电话号码 like 0-90-90-90-90-90-90-9(3)使用系统存储过程sp_bindrule将phone_rule规则绑定到stu_phone表的“电话号码”列上。sp_bindrule phone_rule ,stu_phone.电话号码(4) 输入以下代码,进行一次插入操作: INSERT INTO stu_phone(学号,姓名,电话号码) VALUES(0009,王国强,1234yyy)产生以下出错信息: 消息513,级别16,状态0,第1 行列的插入或更新与先前的CREATE RULE 语句所指定的规则发生冲突。该语句已终止。冲突发生于 数据

13、库studentsdb,表dbo.stu_phone,列电话号码。语句已终止。试分析: 为什么会产生该出错信息?如果要实现插入操作,应修改INSERT INTO语句中的哪个值?phone_rule规则能否对其他操作(如DELETE)进行规则检查? 修改:INSERTINTOstu_phone(学号,姓名,电话号码)VALUES(0009,王国强,1234567)phone_rule规则可以对其他操作进行规则检查2创建一个规则stusex_rule,将其绑定到stu_phone表的“性别”列上,保证输入的性别值只能是“男”或“女”。create rule stusex_ruleas 性别in(男

14、,女)3使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。sp_help stusex_ruleSp_helptext stusex_rulesp_renamestusex_rule,stu_s_rule4删除stu_s_rule规则。 droprulestu_s_rule注意:stu_s_ rule为stusex_ rule更名后规则名,是否仍然绑定在stu_phone表的“性别”列上,应如何操作才能删除它。5在studentdb数据库

15、中,建立日期、货币和字符等数据类型的默认对象。(1)创建默认对象df_date、df_char、df_money。创建日期型默认对象df_date,默认日期为2006-4-12。-创建日期型默认对象df_dateCREATE DEFAULT df_dateAS 2006-4-12创建字符型默认对象df_char,默认字符为“unknown”-创建字符型默认对象df_charCREATE DEFAULT df_charas unknown创建货币型默认对象df_money,默认为100元-创建货币型默认对象df_moneyCREATE DEFAULT df_moneyAS $100(2)输入以下

16、代码,在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的数据结构 (3)使用系统存储过程sp_bindehult将默认对象df_date、df_char、df_money分别绑定在stu_fee表的“学费”、“交费日期”、“电话号码”列上。sp_bindefault df_money,stu_fee.学费GOsp_b

17、indefault df_date,stu_fee.交费日期GOsp_bindefault df_char,stu_fee.电话号码GO(4)输入命令,在stu_fee表进行插入操作:(学号,姓名) values (0001,刘卫平)INSERT INTO stu_fee(学号,姓名) values(0001,刘卫平)(学号,姓名,学费) values (0001,张卫民,$120)INSERT INTO stu_fee(学号,姓名,学费) values(0001,张卫民,$120)(学号,姓名,学费,交费日期) values (0001,马东,$110,2006-5-12)INSERT IN

18、TO stu_fee(学号,姓名,学费,交费日期)VALUES(0001,马东,$ 110,2006-5-12)分析stu_fee表中插入记录的各列的值是什么?(5)完成以下代码解除默认对象df_char、df_date、df_money的绑定,并删除之。sp_unbindefaultstu_fee.电话号码dropDEFAULTdf_charGosp_unbindefaultstu_fee.交费日期dropDEFAULTdf_dategosp_unbindefaultstu_fee.学费dropDEFAULTdf_money6为学生表添加一列,命名为“院系”,创建一个默认对象stu_d_df

19、,将其绑定到学生表的“院系”列上,使其默认值为“信息院”,对学生表进行插入操作,操作完成后,删除该默认对象。1)altertable学生表add院系varchar(8)2)createdefaultstu_d_dfas信息院gosp_bindefaultstu_d_df,学生表.院系go(3)sp_unbindefault学生表.院系7在studentsdb数据库中用CREATE TABLE语句创建表stu_con,并同时创建约束。(1)创建表的同时创建约束。表结构如图1-12所示。图1-12 要创建的表的结构约束要求如下:将学号设置为主键(PRIMARY KEY),主键名为pk_sid。 为

20、姓名添加唯一约束(UNIQUE),约束名为uk_name。为性别添加默认约束(DEFAULT),默认名称为df_sex,其值为“男”为出生日期添加属性值约束(CHECK),约束名为ck_bday,其检查条件为:出生日期1988-1-1。CREATE TABLE stu_con( 学号char(4),姓名char(8) , 性别char(2),出生日期datetime,家庭住址varchar(50),constraintPK_sidPRIMARYKEY(学号),constraintuk_nameUNIQUE(姓名),constraintck_bdaycheck(出生日期1988-1-1),)al

21、tertablestu_conaddconstraintdf_sexdefault男FOR性别(2)在stu_con表中插入如表1-1所示的数据记录。 表1-1 在stu_con表中插入的数据学号姓名性别出生日期家庭住址0009张小东1989-4-60010李梅女1983-8-50011王强1988-9-100012王强1989-6-3分析各约束在插入记录时所起的作用,查看插入记录后表中数据与所插入的数据是否一致?INSERTINTOstu_con(学号,姓名,出生日期)values(0009,张小东,1989-4-6)INSERTINTOstu_con(学号,姓名,出生日期)values(0

22、010,李梅,1983-8-5)消息547,级别16,状态0,第1行INSERT语句与CHECK约束ck_bday冲突。该冲突发生于数据库studentsdb,表dbo.stu_con,column出生日期。语句已终止。INSERTINTOstu_con(学号,姓名,出生日期)values(0011,王强,1988-9-10)INSERTINTOstu_con(学号,姓名,出生日期)values(0012,王强,1989-6-3)消息2627,级别14,状态1,第1行违反了UNIQUEKEY约束uk_name。不能在对象dbo.stu_con中插入重复键。 语句已终止(3) 使用ALTERTA

23、BLE语句的DROPCONSTRAINT参数项在查询分析器中删除为stu_con表所建的约束。altertablestu_condropconstraintdf_sex,uk_name,pk_sid,ck_bday8用SQLServer管理平台完成实验内容7的所有设置。9. 在查询设计器中,为studentsdb数据库的grade表添加外键约束(FOREIGN KEY),要求将“学号”设置为外键,参照表为student_info,外键名称为fk_sid。使用系统存储过程sp_help查看grade表的外键信息。在grade表中插入一条记录,学号为0100,课程编号为0001,分数为78。观察SQL Server会做何处理,为什么?如何解决所产生的问题?使用查询设计器删除grade表的外键fk_sid。(1)altertablegradeaddconstraintfk_sidFOREIGNKEY(学号)referencesstudent_info(学号)sp_helpgrade(2)insertgradevalues(0100,0001,78,)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2