万常选版-数据库试验报告-数据库完整性.doc
实验4:数据库完整性第1个实验.完整性定义 一一第6章实验十重新创建BookDB数据库中5张基本表,要求完成以下完整性约束:(1)创建列级约束:分别为 BookClass表、Book表、Reader表建立主键。B&st ar . . .sql*OrderBB. . . Queryl. sql*摘要CREATE TA3LE BoolcClassTclassNo char31 n匸 null, y * 图书分类号少className varchar (20:匸图书分类名称*/cons匸工呂二n匸 BcokClassFK prz_mary key clasNo命令已戚功完成.numeric(3i3ookPK priniaryk26. aas ter .DQ 口电sql*OrdrDE.Queryl. sqj*摘要c:工亡a匸亡 table BooktockNochar(10inotnull."图书编号椒fclassNochar retnull,八分类号"tockNarr.evarchar 40 r.-scnull,八图书名称专authoxNamevarciiar 3not null, 八作者姓名p-tlihingNamevarchar 20、null,"出版社名税FjfclisingNccn&r 17)null,出版君二号檸pricenuuer ic 7,2:Il 二d八单价,fdatetimepjblishirgDate shcpDate shopNum ccntrairtnull,"出版日期T null,"入库时间吟 null r"入库薮量哼key clk;3 匸已工己11 丨 bDcilciJcA消息命令已成功完成n摘要<11消息sexidentifycardworkrUmrborrowCountconstraz.nt ReaderFK prZ-rcary key readerNo :char - 8 inci匸varchar B ; char 2chari18:varchar 50 m二.tinyinc nullrnull 八读者编号" not null,"蛛茗 *V null f* 性别Tnull,"身份证号T "工作单检T "借书数量"Vk26. aas terLQuery. sql* Js26. OrdarBB. . . Sueryl. sql*create table Reader(readerMoreaderNameCQBma nd (s) cQisqilet.ed sucee s s fully -(3)创建列级约束:给 Reader表创建约束,要求读者编号共8位,以R开头,后续四位为当前系统时间的年份,最后三位为流水号,如R。命令已成功完成B 创建列级约束:为 Borrow表的借阅日期设置默认值为系统当前日期。LlXlNrBookDB * SQLQueryl.sql"alter table Readeradd conscrainc rNoCK check readsrNo like -Rfc-eonverc(char(4 ryear geedate 、Comma:nd < s) caul eced succes m fully _create table Borrowalter table ReaderLIXINu&ooIkDE - SQLQueryl-sql* Sumimiairy+Q-90-9(0-9HSummaryreadier NocharbookNochar * 10borrowDate:d.z匸皂匸imedefa口丄匸 getdate - not. null fshauldDauedatetimereturnDatedatetiraeCQELSt-raint.BorrowPK primary key clust皂it巳且 readerNo f bookNo 7 bo工工owDate: fconstraintBarrawFKl foreign key readerNol references Reader(readerNo:rBorrowFK2 foreign, key bookNo referenaea Book iboolcNoj(4) 创建列级约束:给 Reader表中读者编号建立约束,要求性别为女或男。alter table Readeradd constramv 3exCK checfk sex ,* 1nrQCoiwand(a) completed successfully(5) 创建元组级约束:为 Reader表创建约束,要求给借书数量设置默认值0,身份证号要求唯一。LDUIM.BookDB - SQLQueryl.sql* Summarydrop table Borrow drop table Reader create cable HeaderreaderNachar 8not null primary key,check readerNa 1iks R*-convertchar 4 yer geedate()-*0-9J0-90-9readerNaiEevarchar 8notnull,sexchar 2nullchecksexm(男* 1 女,) fidentifycardchar 18unique el_j1,workUmtvarchar 504 鼻1fboriowCounttiny mt default0 nullMessagesCoatmand (s)successfully(6) 创建元组级约束:为 Reader表创建约束,要求读者年龄在18岁以上,且读者借书数量不得超过8本。LIXIN.Bo&kDB - SQLQueryLqP Summaryalter table Readeradd canstraint ageCK check I year Igetdate i -CQ-vertiintr substring identifycard.7f)>=1Salter table Readeradd constraint bCornizCK check borrowCounc<5_J Mess&esCcrnmand (a) ccznpleted sueeess fully -(7) 创建元组级约束:为 Book表创建约束,要求图书编号共10位,以B开头,后续四位为当前系统时间的年份,最后五位为流水号,如B。alter table Backadd constraint bNoCK check i toaokrlfa Li?year (getdateO )0-9 0-9 0-91T)e *BT +convert char(4 *in_J HeSEagesCommand g)completed 9uecesaful1y,(8) 创建元组级约束:为 Book表创建约束,要求图书单价在10元至80元之间。LlXIN.BookDB - SQLQuerylsqr Summaryalter table Bookadd constraint bPnceCK check pnce>10 己n: price<=SG(9)创建元组级约束:为Borrow表创建约束,要求图书归还日期大于借阅日期。UXIN.BookDB - SQLQuerylql* |Summaryalter table Borrowadd constraint daceCK check * recurnDace borrowDace(10)创建表级约束:为 Borrow表创建外键。UXlN.BookDB - SQLQuery1 Summaryereate table Barrowi xeaderNo boaltNo kiorrowDate shouldDate rei:urnDate constTaintchar 8char(10 datetimenot null,not nullfdef 且 ill 匸 get da 匸皂not null,not null,nullfconstraint constraintdatet jlul皂datetimeBqttqwPK primary key clus匸已工Ed readerNo. bookNo , borrowDateBorrawFKl foreign keyireaderNo references ReaderireaderNo ,BorrowFK2 foreign key(bookNo; references Book(bookNo:_J Messages血丘.Bo dJeSB . -. LQiifez-pl.摘要(2)给Reader表插入元组(R, 欧阳,M,第2个实验.完整性检查第6章实验十一分析下列更新操作对关系完整性约束的影响,如果更新操作违背了完整性约束条件,请给出合理处理方法。 给BookClass表插入元组(001,机械类)。16. BouIeDB . -. LQuery 1. sqiJ.* 摘要 insert BoalfClasfl valdes * 00二 * r 机械类)_J消息(I息级别耳状式i富T行违反了 PRIMARY KEY约束 k6. BookDB * LQ-utt- sql* 摘要insert 3ao)cCl&33 values 00L r r ,机械类。inserc SocJtClass kIxies . 0 W 矶械类| BooJcClaPK不能在对象 dbn. BoakC"盯中插入重夏键 语句已终止.欧氏公司,0 )。k26. BookDB . . . LQuerfl. sql* 摘要insert Reader values|( R2009003 , KPH M , 412 72 31992 09014321 ,)命令已成功完成.(3)给 Borrow 表插入元组(R,B,n ull )k26. EvokDD . . .Ul<irl. brtl* 疲要insert Bozxow values ( 009001* r *0200901002 1JG11C9LS11 *20111019* F null)I| Ci而消息LI消息级别细状卷山第i行IMSEftT 语句与 F0REISN KEY 釣束”目吐釘帜谕沖宠发生于馥据库归如E叭表"dh-BeL" CO1UZTJ-.诵句已终止.BokDB . . . LQufj1. sl* 桶要insert Barrow values (R2009002 , *3200201002 , *20110915,f 20111015 * rn命曾已戚功完亦.(4)删除读者R的信息。delece from. Readerwhe re- readerNo 11R2 0 0 SGO11< 1.BB孑小靈疲洛状态.畀第】行DELZTE语句与REFESZNCE约束"Bor raEkl11该沖夹发生于魏据库卒*2呂珥 表,压口朋“皿肿calurai B=eaderNn 语旬已终止.k26. BdokDB . . . LOueryl. sql* 摘要delete from Borrowwnere readerNo= R2OCS0 2L * delece from Readerwnere readerNo=1RiGOSCOl1X百消息命令已成功完成.(5)删除读者R的信息。k26. BoakDE T . , LQaryl. sl* 摘要delete from Borrowwhere rsaderNo- . _ z u 1 _ delete from Readerwhere readerMo-1R21;iZ;_1<1Jj消息命令已成功完咸口 将R读者所借图书B的借阅日期更新为 2012年4月22日。/ k6. BookDA _ 一 _ LQ-aerrl. sql* 摘要|R200600L读者所借图-#B200101003的借阅日期更新为2012年4月昵日update Borrow3et borrowDate = * 2 Z _2 Z 22 *where readerNo = rR20Q60CC, AND teookNa = "E200101003(7)将读者R的借书数量 更新为9本。BonkBB . T . LQueryl. sql* 摘要将读者R2 50 9 001的借书数量更新为2本 ipdace Readerset borrowCount = 9where xeaderNo = R2 C 3 3C 3 L h(8)将算法设计与分析这本书的价格上调为30元。kZ6. BookDJBLQilsttI . sql* 摘要将算法设计与分析这本书的价格上调为元 update Bookset price = 30where bonkName = 鼻袪设计与分析|<b消息命令已成功完咸