《数据库课程设计之SQL.docx》由会员分享,可在线阅读,更多相关《数据库课程设计之SQL.docx(16页珍藏版)》请在三一办公上搜索。
1、数据库系统概论课程设计I书馆数据库管理系统目录序言1一、图书馆管理系统E-R图1二、图书馆管理系统功能实现示意图2三、图书馆管理系统功能图例43.1读者借阅图书43.2读者归还图书43。 3读者续借图书43.4读者查询借阅图书情况53。 5读者检索图书信息6四、图书馆管理系统附加功能74.1往学生表中插入列系部”,其值等于学号中代表系部的位的值再插入列专业号,其值等于学号中代表专业的位的值74.2查询每个学生对书本的借阅数量94。3查询各个专业的学生借阅书本的数量10五、图书馆管理系统数据库、数据表源代码.错误!未定义书签。5.1图书馆管理系统数据库”源代码错误!未定义书签。5。2图书馆管理系
2、统数据表源代码错误!未定义书签。六、 图书馆管理系统存储过程源代码错误!未定义书签。6.1读者借阅图书存储过程错误!未定义书签。6.2读者还书存储过程错误!未定义书签。6.3读者续借图书存储过程错误!未定义书签。6.4读者查询借阅图书情况存储过程错误!未定义书签。6.5读者检索的图书信息存储过程错误!未定义书签。七、 图书馆管理系统触发器源代码错误!未定义书签。7。1借书要求(书本没有库存,则无法进行借书操作)错误!未7.2借书要求(读者最多借阅量)错误!未定义书签。7.3续借次数要求错误!未定义书签。7.4读者还书信息插入RDeleted表错误!未定义书签。序言本图书馆管理系统谨根据实际需求
3、所创建,创建有如下八个数据表:Book (图 书信息表),Dept (学生系部信息表),Major (学生专业信息表),Student (学生 信息表),StudentBook(学生借阅图书信息表),Teacher (教师信息表),TeacherBook(教师借阅图书信息表),RDeleted (读者还书信息表)等。这些数据表结合图书馆数据库中的五个存储过程,即实现了普通图书馆的大部分功能。如 读者借阅图书功能(Execute RBorrowBook,读者号,图书分类号)读者归还图书功能(Execute RReturnBook 读者号,图书分类号),读者续借图书功能(Execute RRene
4、wBook读者号,图书分类号),读者查询图书借阅情况功能(Execute RQueryBook ,读者号,),读者检索的图书信息功能(Execute RIndexBook 关键字,)等。具体的功 能表现皆在“第二章:图书馆管理系统功能中有详细的图例说明.本图书馆管理系统谨根据实际需要,创建了七个触发器,就此,创作者对这些 触发器做如下说明:1、tri_Book功能表现:只有在图书馆内相关书籍尚有库存的情况下,读者才可以进行借阅操作2、tri_SborrowNum功能表现:控制学生的图书借阅量在5本以内(包括5本)3、tri_SrenewBook 功能表现:控制学生续借图书次数在3次以内包括3次
5、)4、tri_SreturnBook功能表现:将学生的还书信息插入RDeleted表5、tri_TborrowNum功能表现:控制教师的图书借阅量在10本以内(包括10本)6、tri_TrenewBook功能表现:控制学生续借图书次数在4次以内(包括4次)7、tri_TreturnBook功能表现:将教师的还书信息插入RDeleted表本图书馆管理系统设计思路较为肤浅,但在一定程度上实现了图书馆数据库管 理系统的实用功能。初次设计数据库,其中肯定会有不足之处,还望读者谅解!本课程设计附有“图书馆数据库管理系统的所有源代码”,您可以根据需要在 “第四章节”至“第七章节”中进行查看,或查看与本课程
6、设计处于同一目录下的 *.sq l源代码文件!作者:火火火火*火*火一、图书馆管理系统ER图教师借阅图书期限较长,并且允许借阅的书本量较大。因此,将教师借阅关系与学生借阅关系分开较为适宜。年龄姓名性别职称电话工号出版日期ISBN价格总量借出量学号年龄姓名电话性别归属系部编专业编作者出版社类别借阅日期归属学生学号与专 业编号的联系专业名称教师借阅日期分类号教师借阅书名学生借阅归属系部编号与专业编号的联系续借次数续借次数系部名称学生学号与系 部编号的联系系部专业学生图书二、图书馆管理系统功能实现示意图由于教师与学生的借阅图书、归还图书等等过程大致相同,在此,仅借学生有关tri_Book图书库图书信
7、息表Book存量减1表对象信息来对各存储过程作简要说明:tri SreturnBook3。1读械阅图书Execute RBorrowBook 读者号,图书分类号读者借阅图书实例use LibrarySystemgoexec RBorrowBook T006324,D630。3 L836 其中T006324以T为标识,代表教师编号 exec RBorrowBook S070407101,D6303 L836 -其中S070407101以S为标识,代表学生学号go 结果如下:PC-2a090604TQ.stem -实例.sql* 硒use L lb r ar yS ya t.已ingo3.2读者借
8、阅图书实例exec RBorrowBook TOOf324 r 1D630.3 L83 61 exec RBorrowBook S07C407101r1D630.3 L8361读者rrr归还诿者借节成功信息M号西I至3鱼;逸客万眼宅:前?夔UI壬2垣至123:务目堂直IQ分.西按藏迎从图节坦擅既姓国公买E墅邑既三巷:诿者惜节成功信息i学号为3070407101姓倍为阿宝 的学生,于WW3年花月28 0 21时1口肯明秒,成功地从圈书馆惜出中国W共人事首理一节?Execute RReturnBook,读者号,图书分类号读者归还图书实例use LibrarySystemgoexec RReturn
9、Book T006324,D630.3 L836exec RReturnBook S070407101,D630.3 L836go 结果如下:PC-20090604TQ.stem -实例.sql* 摘要 use LibrarySystem3。3读者归还图书实例 exec RReturnBook T006324. 1D630.3 L83 61 exec RReturnBook S070407101r 1D630.3 L83 61 go菇果 3消息读者还书成功信息工号为T006324,姓名为张华 的教职工,于2。的年12月噩日21时12分况秒,成功地向图书馆妇还攻中国公共人事管理一书,:读者还书成
10、功信息摩喜禹.旬而莅而旌莒禹.丽至.南亭里;.芋.元曲宜.转万.苑.百.亓府.转芬宠莉成演钠.有面电宿百.运一市画公.巽兀畚音画.二.甬teRRenewBobk读者号;图书分类号.读者续借图书实例use LibrarySystem读者续借Execugo读者借阅图书exec RBorrowBook T006324,D630.3 L836exec RBorrowBook S070407101,D6303 L836gowaitfor delay 0:0: 5读者续借图书exec RRenewBook T006324,D630.3 L836exec RRenewBook S070407101,D630
11、3 L836go 结果如下:I3C-2009a6Q4TQ.steni -实M.sql* 捕要ub e Lite rar ySyst. erng 口 读者续借图书实 例 use LibrarySyst.ern 如读者借阅图书ckcc RHcrrcwBook TOO63 24,r 1 DCOO. 3 LS36 1UK己u RBorrowBook S07007101, 1D63O .3 L93 51 gowale lor cie Lay 1 : 0 : 5 1读者续借图书exec RF.enejBjolc T005324, 1 D630 . 3 LE3 f 1 exec Rf.enevBziok S
12、0704371C1, 1 D63O.3 L83 61rr1结果岛消息读者借书成功信息1 :工号 1006324,姓名为张华 的教职工,于叩09年泾月W3日时2257秒,成功地从图书馆惜出中国公共人事管理一书,1该昔借七成均i言息S0?04D7101七些找网生.的琶竺.于哽隹.12旦.癸旦列.明.专.分.区股:.既叫也陞雌也.料.里空旻差理.二.翅.一j读者续惜成功信息1!工号为卬阳W4,甦名为张华 的教联工,于叩09年13月眇日21时占分2秒,成功地续借f中国外共人争首理D 书,续借次数共列1次,读者续佶成功1肓息1!学号为50704D7101,姓名为阿宝 的学生,于加明年月23 0 2123
13、2秒,成功地续借攻中国恣拄人半莒理* T,续惜次数共为1次3。4 读者 查询 借阅 图书 情况Execut e RQuer yBook 读者号-读者查询图书借阅情况实例exec RIndexBook数据库go结果如goexec RQueryBook T006432exec RQueryBook S070407101go结果如下:ibrarySystem渎者查街图书借阅情况买例RQueryBook TD3543ZRQueryBook 5D7D4D71O1in消息篇号姓名图书类别借书日期最后续借日期本吠借阅还刺天数是否蹒32吴芳社凳科学2009-11-23 00:00:002009-11-23 0
14、0:0000250否32吴芳数提库原理与应用自王科学20C9C9C1 OO:OD:OD2009-12-2G 00:0000582否&吴芳知识产/论社会科学扪9也曰田;叮田20岛12罚叩;叩叩iQ-者姓名限寮 专业书名图藉别佶书日期最后赫日期本汶佶曲还录质数暧信成数是否踵07101阿宇信启科学学琨信信管理与信息系琉讣当机同路自然科学2009-1027 OQOQ 002009-12-2? 00:00:00232JI07101阿呈信舄科学学院信舄管理与信息系藐社会科学2O09-1&230QOQOO2009-11-22 00:00:00E107101阿至信息科学羯信启首理与信息系新藐房库技术与应用目然
15、科学2003-11-23 QQQQ 002103-12-17 JO; JO; 001307101阿呈信息科学学院悟息管理与信息系枝信皱全与密码学醐科学2009-12-20 OQOQ 002009-12-2000:00:0022J否07101阿里信息科学学打信息管理果息系顷中幽共人事管理社会科学2009-12-28 21 23 C02009-12-2B 2123:00313。5读者检索图书信息Execute RIndexBook关键词读者检索图书信息实例use LibrarySystemgo产表-dbo.Book PC-20090604TQ.stem -实例.scl* 摘要 use Liinra
16、rySystern go 读者检索图书信息实例 cKcc RlndeKBook 数据库 go1而列名你所检索的图书信息如下: I III囹书分类号书名出版社作者 出版日期图书总.圈书余星1O23T345.3图书馆数据库管理系统航院出版社阿宝2009-12-30 00:00:0010234TP311.13数据库原理与应用中国水利水电出版社王立2009-02-01 00:00:00100TP311.213数据库技术与应用机械工业出版社叶敏2008-02-14 00:00:00156TP311.29四级教程函据库工程师高等教育出版社教育部2009-09-01 00:00:0051囱结果匹消息下:四、
17、图书馆管理系统附加功能4。1往学生表中插入一列系部”,其值等于学号中代表系部的位的值,再插入一列”专业号”,其值等于学号中代表专业的位的往学生表s中插入一列系部,其值等于学号中代表系部的位的值use LibrarySystemgoalter table Studentadd SdeptNo char( 2)godeclare sno char (10 ),total int,i intselect total二count(*),i = 1from Studentwhile(i=total)begin查询数据表第i行数据的SQL语句select top 1 sno=Sno from Studen
18、t where Sno not in ( select top ( i-1) Sno from Student)update Studentset SDeptNo=substring(sno , 4,2 )where Sno=snoset i=i+1end select * from Student go结果如下:结果消息5 sewSageSphoreSDeptNo15060102342 j 张林男21NULL012S060302120刘小丽女19NULL033S060902103曾伟男21NULL094S070101125李华玄1966001112015S070204115姜丝建女22NUL
19、L02SS070406123石思男20NULL047S070407101阿宝男20NULL048S070407102白雪22NULL049S070503112副英玄20NULL0510S070G01223马志刚男20NULL0611S070606231削洋男22NULL0612S070802113美玉野女20NULL0812S071211230霍佳女19NULL1214S080400103曾军男21NULL0415S080503333王晓芳立20NULL0516S090101102王明男20NULL0117S090203336王丽女19NULL02往学生表S中插入一列专业号,其值等于学号中代表
20、专业的位的值use LibrarySystemg。alter table Studentadd SMajorNo varchar ( 50)g。declare sno char(10 ),total int,i intselect total二count(*) ,i=1 from Studentbegin查询数据表第i行数据的$。1语句select top 1 sno=Sno from Student where Sno not in ( select top (i一1) Sno from Student)update Studentset SMajorNo二substring(sno, 4,
21、4 )where Sno=snoset i=i+1endgo结果如1S060102342张林21NULL登计学院01 022S 060302120刈小丽女19NULL径置学院03023S 060902103曾伟用21NULL土木建筑工程学院090245070101125李华1966001112会计学院01 0155070204115美埋丝女22NULL工商菅理学院020465070406123石思男20NULL信息科学学院04067S 070407101阿宝男20NULL信息科学学院04078S 070407102白雪女22NULL信息科学学牌04079S 070503112削英20NULL管
22、理科学与工程.一050510S070E01223马志刚20NULL机电工程学院060111S070606231副洋男22NULL机电工程学院060612S070B02113姜玉验20NULL注律系060213S071211230霍佳女13NULL人文社会科学系121114S 080408103曾军男21NULL信息科学学院040815S0S0503333王晓芳20NULL管理科学与工程050316S 090101102王明男20NULL会计学院01 0117S090203336王丽女19NULL工商莒理学院0203J结果消息SnoSname Ssex Sage S phone SDeptSMa
23、jorNo下:4.2查询每个 学生对书本的 借阅数查询每个学生对 书本的借阅数量use LibrarySystemg。select Studento Sno学号,Sname姓名,Booko ClassifyNo图书分类号,Bname书名from StudentBook, Student,Bookwhere Student.Sno二StudentBook.Sno and StudentBook。ClassifyNo二Book。ClassifyNoorder by Student.Snocompute count(Student。Sno) by Student.Sno结果学号姓名囹书分卷号1S07
24、040G123石思H315 9C387专明英语英库汶匹发定位翊译法2S07D406123石思H 32 1142离散数学3S070406123石思IP3C1 34计算机网渚4S070406123石思TP30SX769信启安全与密码学ent. L1学号姓名图书分共号书名S070407101阿宝C9121 YO212S070407101阿宝DE3O 3LB36中园公共入南管理3S070407W1阿宝TP301.34讦宜机向缗4070407101阿MIP30SX7E9信息安全与密印学5S0704071D1TP311 213数据库技术与反用ent15学号姓名厩用分类1S070407102白雪TP311
25、13数据库原理与应用2S070407102白雪TP311.213数据库技术与应用ent1一学号姓至图书对关书名S070601223科我1J H32 1142再鼓数学emt1 i学唇姓名书名霍俚1S071211230F471 2E6 Q173 怀的灯亮看吗?ent1a学号姓名图书分类.军名1S080406103曾军TP3O9XB6现代信息椅索(英文版cht1L.L1学与姓名图书分类号卜书名1030603333王日;K835 65S C941 中国美学史大锅早逃花站Jcm11学号姓色图书分类.书名1S090101102王明A151.27会计学cn(11学号姓名用书分类号书名1S09D203336王
26、丽D91&43Y1EG 刑事演查学ent1Llgo结果如下:4.3查询 各个专业 的学生借 闻书本的 数量 数量use LibrarySystem go declare tempDept table( 专业编号char(4)primary key,专业varchar( 30)not null,学生借阅书本数量int default 0)Insert into tempDept(专业编号,专业)select Mno,Mname from Majordeclare i int,total int,no char (10)select total=count ( *) , i=1 from Stud
27、entBookwhile(itotal) beginselect top 1 no=Sno from StudentBook where Sno not in ( select top (i-1) Sno fromStudentBook)update tempDeptset学生借阅书本数量二学生借阅书本数量+1where 专业编号=substring(no,4,4)set i=i+1 end select * from tempDeptselect total as 学生借结果 捎息1专业漏号专业会讦学生惜阅书本数量1阅书本总量201 02会计电尊化0g。30203_L商骨埋040204言理经营050302物赛经贾0-结60406档案学170407信息管理与诘息系貌9果如下:8040S图节馆1后续“数据90503工业工程1100601材料成型与控制工程211O6OS电气工程发其自动化0库课程设120701英语01 30802法律0140901土木建黄01 50902建掘工程0161001计算机应用01 71 1 01数学专业0181211入立社会科学1* 11 *学生惜闻不丰总量i?H之(SQL Server图书馆管理系统源码”五、图书馆管理系统数据库、数据表源代码六、图书馆管理系统存储过程源代码七、图书馆管理系统触发器源代码