![试验6数据完整性_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/fbfb922e-7646-464a-8481-039d19230041/fbfb922e-7646-464a-8481-039d192300411.gif)
![试验6数据完整性_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/fbfb922e-7646-464a-8481-039d19230041/fbfb922e-7646-464a-8481-039d192300412.gif)
![试验6数据完整性_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/fbfb922e-7646-464a-8481-039d19230041/fbfb922e-7646-464a-8481-039d192300413.gif)
![试验6数据完整性_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/fbfb922e-7646-464a-8481-039d19230041/fbfb922e-7646-464a-8481-039d192300414.gif)
![试验6数据完整性_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-11/23/fbfb922e-7646-464a-8481-039d19230041/fbfb922e-7646-464a-8481-039d192300415.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验目的1 掌握 Transact-SQL语句(CREATE RULE DROP RULE创建和删除规则的方法。2. 掌握系统存储过程 sp_bindrule 、sp_unbindrule 绑定和解除绑定规则的操作方法,以及 sp_help、sp_helptext 查询规则信息、sp_rename更名规则的方法。3. 掌握 Transact-SQL语句(CREATE DEFAULT DROPDEFAUL创建和删除默认对象的方法。4. 掌握系统存储过程 sp_bindefault 、sp_unbindefault绑定和解除绑定默认对象的操作方 法,以及sp_helptext 查询规则信息。5.
2、掌握 SQLServer 管理平台和 Transact-SQL 语句(CREATETABLE ALTERTABLE)定义和删 除约束的方法,并了解约束的类型。二、实验内容及步骤(1 )为studentsdb数据库创建一个规则,限制所输入的数据为7位09的数字。 复制student_info表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码”。完成以下代码实现该操作。SELECT * INTO stu_pho ne FROM stude nt_infoALTER TABLE stu_phone ADDCHAR(7) NULLstu_phone表结构如图1-10所示。性
3、剤出生日期彖庭住址需注电话号码| oooi ill卫平 ?0002強卫昆舅 I3SO-1D-01 00:00:00. 000蔺山市琨凤胳花号 男00:00t00*000 乐阳市八一,園25号KULL NULLKTJLL NULL图 1-10 stu_pho ne表结构 创建一个规则phone_rule,限制所输入的数据为7位09的数字。实现该规则的代码为CREATEpho ne_ruleASphone LIKE '0-90-90-90-90-90-90-9' 使用系统存储过程sp_bindrule 将phone_rule规则绑定到stu_phone表的"电话号码”列上
4、。实现该操作的代码为sp_bindrule,stu_phone.电话号码' 输入以下代码,进行一次插入操作:INSERT INTO stu_phone(学号,姓名,电话号码)VALUES('0009',' 王国强,'1234yyy')产生以下出错信息:消息513,级别16,状态0,第1行列的插入或更新与先前的CREATE RULE语句所指定的规则发生冲突。该语句已终止。冲突发生于数据库'studentsdb', 表'dbo.stu_phone', 列电话号码'。语句已终止。试分析:为什么会产生该出错信息?如
5、果要实现插入操作,应修改INSERT INTO语句中的哪个值? phone_rule规则能否对其他操作(如 DELETE进行规则检查?(2) 创建一个规则stusex_rule ,将其绑定到stu_phone表的"性别”列上,保证输入 的性另M直只能是“男”或“女”。(3) 使用系统存储过程 sp_help查询stusex_rule规则列表,使用 sp_helptext 查询 stusex_rule 规则的文本,使用 sp_rename 将 stusex_rule 规则更名为 stu_s_rule 。(4) 删除 stu_s_rule 规则。HIf注煙:stu_s_rule (stu
6、sex_rule 更名后规则名)是否仍然绑定在stu_phone表的“性另列上?应如何操作才能删除它?(5) 在studentdb数据库中,建立日期、货币和字符等数据类型的默认对象。 在查询设计器中,完成以下代码,创建默认对象 df_date、df_char、df_money。-创建日期型默认对象 df_dateCREATE df_dateAS '2009-4-12'GO-创建字符型默认对象 df_charCREATE DEFAULT df_char nown'GO-创建货币型默认对象 df_moneyCREATE DEFAULTAS $100GO 输入以下代码,在 s
7、tudentsdb数据库中创建stu_fee数据表。CREATE TABLE stu_fee(学号 char(10) NOT NULL,姓名 char(8) NOT NULL,学费mon ey,交费日期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.学费'GOsp_bindefa
8、ult ,stu fee.交费日期'GOsp_b in default 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','马东',$11
9、0,'2006-5-12')分析stu_fee表中插入记录的各列的值是什么? 完成以下代码,解除默认对象df_char的绑定,并删除之。'stu_fee.电话号码'DEFAULT df_char按同样的方式,删除默认对象df_date、df_money。(6) 为student_info 表添加一列,命名为"院系”,创建一个默认对象 stu_d_df,将 其绑定到student_info 表的"院系”列上,使其默认值为“信息院”,对student_info 表 进行插入操作,操作完成后,删除该默认对象。(7) 在studentsdb 数据库中
10、用 CREATE TABLED句创建表 stu_con,并同时创建约束。 创建表的同时创建约束。表结构如图1-12所示。ME孚号4achar2卅主日期$r«r chu-so图1-12 要创建的表的结构约束要求如下:将学号设置为主键(PRIMARY KEY,主键名为pk_sid。为姓名添加唯一约束(UNIQUE,约束名为 uk_nameo为性别添加默认约束(DEFAULT,默认名称为df_sex,其值为“男”。为出生日期添加属性值约束( CHECK,约束名为 ck_bday,其检查条件为:出生日 期 >'1988-1-1'。在stu_con表中插入如表1-1所示的
11、数据记录。表1-1 在stu_con表中插入的数据学号姓名性别出生日期家庭住址0009张小东1989-4-60010李梅女1983-8-50011王强1988-9-100012王强1989-6-3分析各约束在插入记录时所起的作用,查看插入记录后表中数据与所插入的数据是否一致?使用 ALTER TABLE语句的DROP CONSTRAIN参数项在查询设计器中删除为stu_con表所建的约束。(8) 用SQL Server管理平台完成实验内容 7的所有设置。(9) 在查询设计器中, 为studentsdb 数据库的grade表添加外键约束 (FOREIGNKEY),要求将“学号”设置为外键,参照表
12、为student_info,外键名称为fk_sid 使用系统存储过程 sp_help查看grade表的外键信息。 在grade表中插入一条记录,学号为 0100,课程编号为0001,分数为78。观察SQL Server会做何处理,为什么?如何解决所产生的问题? 使用查询设计器删除 grade表的外键fk_sid 。三、实验结果1. 为studentsdb数据库创建一个规则,限制所输入的数据为7位09的数字。(1)复制学生表命名为stu_phone,在stu_phone表中插入一列,列名为"电话号码”。完 成以下代码实现该操作。SELECT * INTO stu_pho ne FROM
13、 学生表ALTER TABLE stu_phone ADD 电话号码 CHAR(7)NULL stu_phone表结构如图1-10所示。图 1-10 stu_pho ne 表结构 可口施+ _J dbo<. s±1 _J dbo.成績恙+dbo.课程表s学生表Uu*i r:atF X割IfriHii»>EEEED凯1鼻J!f J Q3 tn输r齐賂丁 冋NU月劇湎'1】匸+, 删nw00afl.nix:1jofLtLNKK菇庐ifi中山玮£ 側馳电舅Q:WWMQ7tt9»>150J»4nDatast壯raao-LaaL
14、OOtr东工市电山thjUjfj3MU删3创建一个规则phone_rule,限制所输入的数据为7位09的数字create rule phon e_ruleas 电话号码 like '0-90-90-90-90-90-90-9'使用系统存储过程 sp_bindrule 将phone_rule规则绑定到stu_phone表的"电话号码” 列上。sp_b in drule phon e_rule ,'stu_ph one.电话号码两消息已规则綁定钊表的列.(4)输入以下代码,进行一次插入操作:INSERT INTO stu_phone(学号,姓名,电话号码)VALU
15、ES('0009',' 王国强,'1234yyy')产生以下出错信息:消息513,级别16,状态0,第1行列的插入或更新与先前的CREATE RULE语句所指定的规则发生冲突。该语句已终止。冲突发生于数据库'studentsdb',表'dbo.stu_phone',列电话号码'。语句已终止。试分析:为什么会产生该出错信息?如果要实现插入操作,应修改INSERT INTO语句中的哪个值? phone_rule规则能否对其他操作(如 DELETE进行规则检查?修改:INSERT INTO stu_phone(学号,姓名
16、,电话号码)VALUES('0009',' 王国强 ','1234567')phone_rule规则可以对其他操作进行规则检查2. 创建一个规则 stusex_rule ,将其绑定到 stu_phone表的"性别”列上,保证输入的性 别值只能是“男”或“女”。create rule stusex_rule as 性别in('男','女')a caBi_j dbo. atus3.使用系统存储过程sp_help查询stusex_rule规则列表,使用 sp_helptext 查询stusex_rule 规则的
17、文本,使用sp_rename 将 stusex_rule规则更名为 stu_s_rule 。na结果匕消息fJan 已OwnrTy.,_l i itusM-|e irule2012-05-0710:46:12.637sp_help stusex_ruler n站果.j捎息Thi create lule stusex ruleJ tl2Sp_helptext stusex_ruledt'O phon.8_rul«匸弘日 stu_s_irultsp_re name stusex_rule,stu_s_rule4. 删除 stu_s_rule 规则。a i-j dba pbofts
18、_rul edrop rule stu_s_rule注意:stu_s_ rule 为stusex_ rule更名后规则名,是否仍然绑定在stu_phone表的"性别”列上,应如何操作才能删除它。5. 在studentdb数据库中,建立日期、货币和字符等数据类型的默认对象。(1)创建默认对象 df_date、df_char、df_money。创建日期型默认对象 df_date,默认日期为2006-4-12。-创建日期型默认对象 df_dateCREATE DEFAULT df_dateAS '2006-4-12'创建字符型默认对象 df_char,默认字符为“ unkn
19、owr”-创建字符型默认对象 df_charCREATE DEFAULT df_charas 'unknown'创建货币型默认对象 df_money,默认为100元-创建货币型默认对象 df_moneyCREATE DEFAULT df_mo neyAS ' $100' lJJ默认值嗚 dbo.df_ctiarifl dba-dCdale逛dbo.df_money(2)输入以下代码,在 studentsdb数据库中创建stu_fee数据表。CREATE TABLE stu_fee(学号 char(10) NOT NULL,姓名 char(8) NOT NULL,
20、学费mon ey,交费日期datetime,电话号码char(7)表stu_fee的数据结构如图1-11所示。當号学拥交费日期电话号砚图1-11 stu_fee的数据结构WIN-LB4FALKQO7H. . SQLQ呃申1申 Jffi#芋号注名学贵交鬓呂朝电话号码MLNUUMJLL(3)使用系统存储过程sp_bindehult将默认对象 df_date、df_char、df_money分别绑定在stu_fee表的“学费”、“交费日期”、“电话号码”列上。sp_b in default df_mon ey,'stu_fee.学费'GOsp_bindefault df_date,&
21、#39;stu_fee.交费日期GOsp_b in default df_char,'stu_fee.电话号码'GOlis消息已将默认值绑定到外(4)输入命令,在stu_fee表进行插入操作:(学号,姓名)values ('0001','刘卫平')INSERT INTO stu_fee( 学号,姓名)values('0001',' 刘卫平')(学号,姓名,学费)values ('0001','张卫民',$120)INSERT INTO stu_fee(学号,姓名,学费)values(
22、'0001',' 张卫民',$120)(学号,姓名,学费,交费日期)values ('0001','马东,$110,' 2006-5- 12 ')INSERT INTO stu_fee(学号,姓名,学费,交费日期)VALUES('0001','马东',$ 110,'2006-5-12')分析stu_fee表中插入记录的各列的值是什么?-WlN'LB4FALfCO07HH.M - SQLQueryl iql' 摺夢字E孚赞交费日期AU2M/ViZG-aOrOOu
23、ilrownQQQ1弓KP民120. QKQ2Q04/V12 0:00:00inhiawnDQQI110.DD0D2006/50:00 :(»uilciawiNU.LNLJLLMilMilNLll完成以下代码解除默认对象df_char、df_date、df_money的绑定,并删除之。sp_unbindefault'stu_fee.电话号码'drop DEFAULT df_charGosp_unbindefault'stu_fee.交费日期drop DEFAULT df_dategosp_unbindefault 'stu_fee. 学费'dr
24、op DEFAULT df_mo ney6. 为学生表添加一列,命名为“院系”,创建一个默认对象stu_d_df,将其绑定到学生表的“院系”列上,使其默认值为“信息院”,对学生表进行插入操作,操作完成后,删除该 默认对象。1)alter table学生表add 院系 varchar(8)2) create defaultstu_d_dfas '信息院gosp_bindefaultstu_d_df ,'学生表.院系'go(3)sp_unbindefault'学生表.院系'bo.事生蛊 S WINFALKaO7H. SQLQuervLsql'岀主日朋
25、勰住址备汪薪術山市孔3&:一. zNULL男蚀5引屮0:3:閒汞阳市八一北“ ZML畀1560/7/40100:00怅診市五一路九* 3NULL1蚁居旳0:00:&0專莓哉丽大 3NULL麗l$a0/7/13 0:00:50乘方市申山3§上AU丄NULLiflSO/n 4 0:00:00长吕帘解翊氛ZNULL女1530/3/15 0:00山蘭市Q5I3S1.心丄NULL女需江市给山略H也丄MULLNULLalunuiNUIL7.在studentsdb 数据库中用 CREATE TABLED句创建表 stu_con,并同时创建约束。(1)创建表的同时创建约束。表结构如图
26、1-12所示。列名数齬类型学号char4姓名chsr3性别cher”- 4 -2出生日期iatetirweS尿庭住址v ar char50图1-12要创建的表的结构 约束要求如下:将学号设置为主键(PRIMARYKEY),主键名为pk_sid。为姓名添加唯一约束 (UNIQUE), 约束名为uk_nameo 为性别添加默认约束(DEFAULT),默认名称为df_sex,其值为“男” 为出生日期添加属性值约束(CHECK),约束名为ck_bday,其检查条件为:出生日期 >'1988-1- 1'oCREATE TABLE stu_c on(学号char,姓名 char(8)
27、,性别 char(2),出生日期 datetime,家庭住址varchar(50),constraintPK_sid PRIMARY KEY(学号), constraint uk_name UNIQUE姓名),constraintck_bday check(出生日期 >'1988-1-1'),)alter tablestu_c onadd constraintdf_sex default '男'FOR 性别 dbvtu.Wfi * -如VYIN-L£4ALKOQ7性名dw阊151出生日旳da 毎n(2)在stu_con表中插入如表1-1所示的数据
28、记录。表1-1 在stu_con表中插入的数据学号姓名性别出生日期家庭住址0009张小东1989-4-60010李梅女1983-8-50011王强1988-9-100012王强1989-6-3分析各约束在插入记录时所起的作用,查看插入记录后表中数据与所插入的数据是否一致?INSERT INTO stu_con(学号,姓名,出生日期)values('0009','张小东','1989-4-6')INSERT INTO stu_con(学号,姓名,出生日期)values('0010','李梅','1983-8-5')消息547,级别16,状态0,第1行INSERT 语句与 CHECK约束"ck_bday"冲突。该冲突发生于数据库 "studentsdb",表"dbo.stu_c on", 语句已终止。column '出生日期'oINSERT INTO stu_con (学号,姓名,出生日期) val
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度生鲜蔬菜肉类供应链整合服务合同
- 2025年度驾驶员运输服务质量标准合同
- 二零二五年度数字内容著作权共享合同范本
- 二零二五年度商业地产项目经营权租赁合同
- 2025年度设备购置贷款协议书模板
- 智能工厂工业4.0的实践与展望
- 二零二五年度砌体施工项目后期服务与客户满意度调查合同
- 二零二五年度账户监管与金融消费者权益保护合同
- 2025年度季节性用工聘用协议是否构成劳动合同
- 跨区域学生体质测试数据的比较研究及启示
- 吉林省吉林市普通中学2024-2025学年高三上学期二模试题 生物 含答案
- 2025年湖南省通信产业服务限公司春季校园招聘76人高频重点提升(共500题)附带答案详解
- 《电影之创战纪》课件
- 2024-2025学年人教版五年级(上)英语寒假作业(一)
- 开题报告-铸牢中华民族共同体意识的学校教育研究
- 浙江省五校镇海中学2025届高考考前模拟数学试题含解析
- 公司2025年会暨员工团队颁奖盛典携手同行共创未来模板
- 数 学2024-2025学年人教版七年级数学上册有理数混合运算100题
- 新沪科版八年级物理第三章光的世界各个章节测试试题(含答案)
- 人教版五年级上册四则混合运算300道及答案
- 非遗国粹川剧变脸的传统文化知识了解原创模板
评论
0/150
提交评论