云南大学-实验六-数据库完整性报告_第1页
云南大学-实验六-数据库完整性报告_第2页
云南大学-实验六-数据库完整性报告_第3页
云南大学-实验六-数据库完整性报告_第4页
云南大学-实验六-数据库完整性报告_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

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

文档简介

1、云南大学软件学院实验报告姓名:学号:专业:信息安全成绩:实验6数据库完整性实验6-1完整性约束1、创建规则(用图形或者语句方法创建)(1)创建入学日期规则Enter_University_date_rule,假定该学校于1923年4月30日创建。要求:入学日期必须大于等于学校创建日期,并且小于等于当前日期命令已成功完成口&QLQueiyllxql-(1_o-S-8XlcnovtSQLQuerylD.sql-(l._D-8-8(enovosp_bindrvleEnterTin士丁巳t字ityaatajrule,.学牛表-入学日期电消息已将规则绑定到表的列。测试:SqLqueryS占ql-

2、(|-S-&Xlenovc(54)*9novo-&留学生管理教据言-北.学生表 Lsa 口-8由,学生口insertincc学生表Lvalues(120020523,退学成男22-软件学院软件班2015-B-2Iin;办消息消息叩,级别n后口,第】行列的插入或更新与先前的.CREATERULE语句所寸旨定的规则发生冲突 J 该语句已终止。冲突发生千戮据库,学生管理数据库,表,皿.学生表1列,入学日期、语句已终止*(2)创建学生年龄规则Age_rule”。要求:学生年龄必须在1530岁之间课程:数据库原理与实用技术实验任课教师:刘宇、张璇SQLQuerylO.sql(l,08-8

3、lenovo(52)*SQLQuerS.5ql-tl.,.o-8-8lenc日cxeatex?uleEnterUmvexsj-tydataxule1as0入学日期=19Z3-4-and入学日期工FSda六川国国消息消息QLQueryl3.sql-(l_6-6-filenovo(S2)*ElcreateruleAgeruleLas1年龄15and-30Jl由消息命令已成功完成。EQLueryl4.sql-(Io-8-&lenovo(S3)SQLQujpbiTidrulekge_rule,学牛表*年龄1tj消息已将规则绑定到袤的冢测试:/SQLQuerylS.sql-(l_o-S-Slen

4、ovo(52)日insertinto学生表:valuesf2OQ2OS23退学成,男J软件学院一软件班2015-8-26)J消息消息河级别工与状杰。,第1行列的插入或更新与先前的“RTERULE语句所指定的规则发生;中突。修语句已终止“冲突发生于数据库学生管理型据摩,表 6d 学生表、列年龄丁旨句日冬止。(3)创建学生性别规则Sex_rule”。要求:性别只能为“男”或“女”SQLQuetyl5rql-(l,o-8-8lenovo(52*createruleSexrile“性别=,男,/性别 1 女,由消息命令已成功完成%Q.L4ueryl6.sql-Sknovo(S3)*SQLtap_bin

5、drule,学生亲,桂娜消品己I软则绑定到表的列。测试:SQLQueryl7i.K|l-(lL.9-0-6lenQV9(MJ)*SQj-Quer/lfi.sql-|.0-8-8CTKJMC?;53I:SQLQiucryLainsertIntc学生去TaluEr120020523,迟学成 I1好1J22l 软件学院软件班*2.STT 歹 iUr库别新羽业.第匕L-Ai生室黄I:(4)创建学生成绩规则“Score_rule”。要求:学生成绩只能在0100之间QLQueryl7.&ql-(l.o-S-8lenovo(54J),日czeaterule5口口匚亡匚uLuL&s成绩产。=7

6、成绩二10口Lj消息命令已成功完成*SQLQueryiZ.sql(l,o-a-Slenouo(54JV%QLqu叫spbindruleScarerule,.成绩?岛消息已将现画绑定到表的列,(5)用图形方法查看学生成绩规则“Score_rule,截图为:d1表0口亲统表-I7*1dbd成第表日口列f学号(PKchar(2DLf课聘(P&回圉学分(Mnull双击:成绩:名朝成票数据类型ctir系缢舞型char王祥FalseTOPHull值True计茸False计尊文本/记闹附子|o标识母里Qi痈值哪这量X架构丽1Score_ruLe:顾1架构必成项(char(20).null2、删除规则

7、Enter_University_date_rule&QLQueryie.tqll-(5”尸邙学生表,入学日期,3消息除了表列与士顿眨间的绑定。SQLQuerylS.sql-(l,Q-&-8knvc(S4)*QLQu硒dropruleEntez_Univei5ity_data_rule因消息命今已成功藏了3、创建默认(用图形或者语句方法创建)(1)创建默认时间“Time_default”为当前系统时间SQLQueryZO.sql-(l-o-S-Slfrno-vo(56)*SQLQuryl9,$createdefaultTirr.edefaultasgetdite:3消息命令已成

8、功完成S(2)创建默认入学年龄“Age_default”为18岁SQLQuery2Or$ql-(lo-8-8lenovo(56)*S( (cieateiefA.gedefaultasIfi由消息命令已而力完龙口(3)用图形方法查看默认入学年龄“Age_default”,截图为:LenciuogW学生囹看钙库此口.学稣*SQLQufrry20r5ql(l.,csp_bindealiitF值消息已将默认值细定至旅心I标识Filst标识仲子0标识僧里0兼认值绑左Age_default1默认架构15rrUdbo(4)用语句方法查看默认入学年龄“Age_default,语句为:4、删除默认入学年龄“Ag

9、e_default”SQLQuMyZsqld-0-8-8l&novo(53)”DROEIXEFEU工丁且gudefault消息命令已成功完成。5、创建声明式默认:在创建表的过程中创建声明式默认(1)创建表“default_example”,表中包含字段pid、name、sex、age。 要求设定sex的默认值为“男”、age的默认值为18。输入数据:编 p姓名性别年龄101苏晴女201马拯山20执行结果为:SQLQueryi.sql-(LQ-&8lsn0v。(36)*createtabledefauIt_exampleipidAntriajt&(10,sexchazrE

10、constraiatsex&工史;2_七default*1.己guluxc口口口tr口1口下3 已faultISEILa口dbo,default_example_dbc.莹_3北 5 深程表Z1dba援哩表口db。学生表输入数据:LenoVQ-8-乱学生管座数抬J忙.examplepidnamesexageiniBaf女MAIEEEEE201马椀山NULL530内胃口JTJT-J1AfJTf获取数据结果为:SQLQuery4.sql-(L.o-g-8l&novo(52)*3sltez?tabledefaultexamplel-adddefault100fcrpidnr插入一条记

11、录,执行结果为:Lenava-g-区学生吉谡教.dM目uIteicamplfiSQLQu由ryg.eqI-RInsert;工口七口defaultexaiwle(namersexage)-values/张三,男2工selecc-frcmdefalrexairrle曲结果消息pidnameSftXage111:1GS女NULL2马拯山NULL203100张三勇216、在“学生管理数据库”各个数据表中建立相应的主键、外键、惟一值、以及check约束,要求:学生的年龄必须是两位数,其中第一位是1或2:学生表如下:p*dnamesex四七卜苏精女男IB201马撷山2Q米NULL.MilNULLLenog

12、学乱学生管.cie1ault_eKample(2)在表中增加新的默认,将编号默认为100。EQLQueryLeql-Clo.-16-3knovt)(S2)j*.-告电互现居目alerable学生表- addcoD3Lxaj.nt学生表pxrtaryKEY(学号aalcercaiile学生表wichnocheck:-dddconstraintckageuti史uM(年龄3。and年龄=1。:PIaltertable学生表witinocneck-addconstraintckdatecheck入学日期3.934-3-3.)pjaltrfircajole学生表wichnoctieclc- addco

13、nstraintck_sexutieuK(性别7男1,女):*|TLJj消息|命令已成功竟面授课表如下Lenowo-16-3gSaSg-EqLQueryLgql-J_-lg-llenowIalter口心工号授课表- addconstrainx口上_授课表primary烂W教师名,课程:号.班机名)-alnerLatle授课表withnocheclraddconstraintck授课丢foreignkwyt课程号references课程表Salcertable授课表withnocheck- addconstraintuk安排uhlr学时数=0消息命令已成笫完成。课程表如下:SQLQueryl.&

14、amp;ql-(Io.-16-3lenovo(52)*-altertable谢程表、- addeonraint.pt课程或primary3丫1课程号- aL匚曰工二也Le课程表wirijnodieck- addcansralnt匚/学分匚h3ct(学分=口)愠消息需今已丽竞丽成绩表如下:QLQuery2.sql-(Io.16-3lenovo(54)*Lenc?g163学生高Filtertable成绩表-addsc二FK_成绩表txircaryKeW学号,课程号Haltertable成绩表-addCDnsxaintkckrdXoieignk?门课程号referencea课程关Ealtertato

15、le成统表withnochsok-acidGonstraintfkcxidfcieigntey岸号)references学生表aicertable成绩表withnocheck-addc:on1s七工己ZLntck力C:MEck:分、=0中,”但,成绩表withnocheck-adducirmra二mtukjji绩check成J绩3二0m 二匚成绩=1口口:删除check约束:学生表的:国口列iJ一建口二级田2JI田口9novQ-113 学生管理数据序-db5 学生表 sqLQueryijaltercable-dropconstraintukageF|altercable学生表-dropcons

16、traintckdstenaltertable学生表1- dropconsttaintcksej:tI_“T岛消息|命令已成功完成白二口二口dg掌粉掌粉国列田施塘国列田施塘痴库-dbm,接泮装二级二级囤一i.Q靠十一i索引国蜿计僖息*imra授课表的:dba登登星表星表画:列的口舞0n约束约束a_剪E图二(触发器LenoQ18-3. .学生库学生库. .dbc学知学知SQLEaltertableI-dxopcon-txintck安由Fw消息命令已成功完成口F0db口授粽田列田_J遗3约克王二I鞋发器+iQri索胃I课程表的:TJ曲口,理程表列ELJ日口约束Uk学分触发器触发器EQLQueryS

17、.sql-(1o_-L6-3lenovo(54)*SQLQueryl.回口工 6 匚cable课程表、LdropconstrainticK_学分彳豆消息命令已成功完成LU1a皿QL.FJdb口口课程表课程表因LJ列田口髓田口髓Cam百百帔发器帔发器成绩表的:成绩表的:瓜门口316,学生旨库-db0字=QLQuery3-tql-(la.-.16-3h巳巳rtq工工成绩表dropconstraintGkjrfeLjaltercable成绩表dropconstrain-tprrcerrlDpercentJ10rpriiLiryke/aid;createca&leprcauccspidchar

18、10r.otnulLpnwtchar120*city6HWfquanticyi.n匚cheekquantrny-0:.pricerealctecXprice0.0prix-.dfyk士?pi-d;实验6-2触发器1、使用触发器(1)创建一个触发器trig_update,返回对“学生表”进行更新操作后,被更新的记录条数SqLQuery1时-(52)*cieatetriggertrig_u.pd.SLe口口学牛表且:f七史上updateasnpxinxHggu二LOutput:1+convert(varciiar(51,90rowcouiit)+*rowswereupdated-.J消息1命吟已成

19、功完成也ILJ二dbd 学生装同口列国口鞋国口约束日触浸器tng.updste(2)执行触发器Lwncrg-加汰于王旨 JSiX 蛔年-口口口子玉木、qLqueryw 事 qi、tio+-i5-uyencvoQOp日 update 学生表-骁七班级=啾件3班,所在院系=,计算机,(3)修改触发器trig_update,除返回被更新的记录条数外,再返回学生的所有基本信息TJNJIFWLK|ndbc,.U列径L缝ujj 约束ELJ修改U)编写融襄器脚本为(叁看点毅关系(V)禁毛Dl+Lu索引+I二统计策暗策暗 Q Q方面闻SQLQuery4.fql-(Io.15-8lenoo(57)*人 11 口

20、,0-15 电,学生爸?库-dbo.学生表口醛1学生管理数据库GO/*Object;Triggerdbotrig_updateScriptDate;05/23/20HSETAN5INULL5ONGOSETQUOTEB_IDENTIFIERONGOBALTERtrigger飕总LJ&淳U渔皿Qn【用口1学生表1afterupdatea9Bprint1Trigger-Output:+convert(varciiar(5),zowcount)+*rowswereupdatud,select*fXQTninserteiil命令已成功完成口5QLQuery6.sql-(lo.45-8Menovo

21、(57)*SQLQueiy3.ql (lo-15*8|tiovo(54)y日updace一兀七班级=,软件3班,WhBHU所在院系=,计算机,国结果将消息字号姓名性别性别钺所在F繇班级入学日期1a一“iiaAiiia*aiiaaiBa_Kii200嚣烟;.I李清男19计算机软件3ffl 22-2-27220023003肖一竹里19计算机软件第E 2002-S-2732。收32沈看娜女18计算机软件3 2002-B-274如成错更IS计算机软件?班2002-S-272、使用触发器的两个特殊表:插入表(inserted)和删除表(deleted)。(1)在“学生表”上创建触发器ins_del_sa

22、mple,在对学生表进行插入、删除或更新操作后,分别从inserted表和deleted表中查询学生学号、姓名、性别、年龄和所在院系。GrQLQueryB.sql-(lo.-15-8lenowo(SS)*QLQuery7.sql-l-o_-IS-0Ienovo(52)*Bcreatetrigger1ns_del_sanp1eg 学生表-afEedeleteinsert:updatei?print*Trigger-Output:4-convert(vazcliar5j0SraitfCOinit)+1rowswereipdaced.select学号,姓名.性别,年龄,所去院系frominserte

23、dLselect学号姓名隹另ijr车龄,旨在院索一deletea|+1i选选一=;姿田口案引(2)执行插入、删除和更新操作后返回的表有什么区别?插入操作:是库是库-dbd 学切QLQueryB.iql-(lo.JlSfilenovo(55)*日msextinto*values(T20020523F,,迟学成,J男3r之2。,软件学院软件“班,,T2O09/8/26|的的:省息:省息居第果3消息学导F 星性别生豁断在嬴(MiimimiiimiiiiiiMj1200523:迄学成里茨软件学浣1uamIUIIIiiir学号姓名性别年龄所在院系删除操作:工小力皿0,5-总掌生富=-dHd学生表dele

24、tef匚口正半牛走where姓名=,迟学成,国绪果值消息|沁姓名性别年瓯一诉在陈系字号姓名性别年龄所在院系1施血花 退学成男22软件学撰更新操作:(触发了两个触发器)/IrqLqueryS,sql-(lQ-15-8lenovo(55)*SQLQuery7n5ql-(Ion3update学生表L3ec班级-1软件翎Fwhere所在院系-、计算机,口结果3消息学号姓名性别年龄所在除系班会入学臼期12M26W李涛R19计算机软件3班2002-S-27!1.MlU4!a_&!II&22W23003肖一竹里19计算机j软件那I:2002-A 订12Mmsm2沈香娜女1S计算机h20侬00

25、1刘成籍更1E计算机软件2班2002-S-27软件加狂20D2-3-27字号姓名一性别年龄所在院系12OT26M3李清里19220023003肖一竹男19计茸机H-Hlill-iHIIIH4Illihrll计算机32W23D02沈香娜女1S计茸机420023001刘成再1S计耳机字号姓名性别年龄所由标12D026D03至育奥19220023003肖一竹居19320023002沈香娜女16计 苴 机 计算 机 计 算机4和侬刘启铠里1S计苴机3、使用系统存储过程查看触发器(1)显示触发器trig_update的一般信息SQLQueryLLsql-(56)*SQLQuerylteKec3p_hel

26、pLriQ_update|矗结果苗消息NaraOwnerTypeCr&atedjdetime1!t喈_upd於idbotrigger2014-05-27I:40:tJ4,110(2)显示触发器trig_update的源代码SQLQuerylLsql-(lQ-8-Slenovo(56)*SQLQueryex.eeap_hlptexttrig-_u.pdare口果 u 消息TextCREATEtriggertrig_updateon 学生表千口pdaU2printTncigerOiipui:4convrt(varchar(5.WIIBHama-MiBiiraiiiBIVBMIIBirHai

27、urMiMIIBirHaiurMi*MIIBirHaiurMi*BIVBn3update学生某set静=119where 姓名=李奇,?V.:a:.as.-.:1_s:.a:-:.:.:aS:.:-:.“,=,a.:.“,二一(3)显示“学生表”上所有的依赖关系QLQuerylLsql-(56)execsp_dependj学生表,结果,结果消息消息LOIWM-U-注学生管座数据库-db 加成携表|学号一课程号一麻1学分.0030522(4)显示触发器trig_update所引用的对象SQLueryiXsqi-(1*口H-Menov。15)丁syiyueryexecsp_depen.d.strl

28、ate5结果本息结果本息narnetypeupdatedselectadcolumn1i曲。学生亲!usertablenoyes姓患IIIFHIIIIH-IIIImilITml2曲。学生赛usertableano年龄4、难题(注意inserted表和deleted表的使用,并请自己修改数据表)(1)为“成绩表”创建一个触发器,当向表中插入数据时,如果成绩大于等于生就能得到相应的学分,否则,该学生不能得到学分。60分,该学fQLQueryLsql-(l.-ll-lenovo(55)*|口 gaZ 二学分0n成绩表afrerinsertasdedare3Kfloatdeclare3ylost3X=

29、成名责工二GIT,二二七二select学分frominjertdnupdate成绩表set字亓=casewhen3x?-60thM当当消息消息命令已成功交成。测试:5QILQueryfi.sql-(lo-ll-Sleriov0-where学号二select学号fiortmseited.nrJ消息命令已成功完成。60分时,则该学生的3ndbd成痛表也l_J列U口道lL3约束日3的更改分数测试:1.先前的成绩表:Len皿所11队学生管理数据库-db。咸娥表QLQueryll.Sql-.卜:学招课程昌庆鳍学分二围质caoi9942D023MLc80198420023001c802%S20026901

30、CS01854米更 新 成220026002c8O3824ALZNULLACAUZ责:成绩小于60的情况:SQLQueryl2.sql*(.ll-8|enovo(54)JSQLQuerylO,sql(_-ll-Sknovo(53)*mupdate成绩表L3成绩whr噌学号M272T彳LT豆消息u行受影响i行受题囱学分相应的变为01/lenwo-11-Mt生管Sfflg库-dbDjffiQLQuerylO.sql*(.Al-SXlene字号课程伺成矮学分120020523面面1590式1023a。 工C30193q20023001299M20026001cSOlS5420026002匚803S2

31、4*MJLLM.LML成绩大于60的情况SQLQuerylft.sql-(-ll-6lnovo(SB)*len3d】l1 学生剧日update,成绩装“一L成绩=,9二学分4,wh-E学号=口口2口52寸ILwtwv口工】书.字生管惺放阳厚-。修。.瓯喊表字号课程号因建学分皿明林je,cBOl984现观却CMcBOl96420023001谢299320026001cSOl35420026002C803az4米NULL/JUIL/VLEZMAL学分为更新后的学分,而不是05、完成教科书456页如下习题:Lenovo-ll-8.CAP-dbo.AgentsSQLQueryZO.sql-(.-ll-

32、8lenovo(37)*createtriggeragentcityonAmentaaftarinsertdEGla匚 unewzitychar20aelsct;Jnewaitycityfrominserted if3n&wcit.7NOT二Hselectcxt-yfromCjtQiciers匕uginmint,输入错误,请重新输入用户所在的城市,rallbacktransact.ionLendnr岛消息命令已成功完成。因一J月图坦圄二i为束日二触发器0囤匚J案引圄二统计信息测试:city 不在 customers 中的情况:Lenovo-ll-8.CAP-dho.AgentsSQLQueiylS.Eql-(.-ll-SleH6vG(54)日二:13目二。int口而 u 二匚二L”工叱31一”吃学成,,昆明r I3gent_city输入错昆请重新输入用户所在的城市消息3G0Sj级别16,:事务在触发器中结束。大态L第1行出处理已中止。City 在 customers 中的情况:SQLQuer-JO.sql-:.-l_l-8lenovoQLQueryl9.Cl-(_-ll-lcnovo(54),日2n寸0二7inrc氏”二一LYBlUES广07,J退学成l:,行受影响,Le-rto-vo-ll-G.CAP-db

温馨提示

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

评论

0/150

提交评论