1、图书馆数据库管理系统图书馆数据库管理系统 一、图书馆管理系统 E-R 图教师借阅图书期限较长,并且允许借阅的书本量较大。因此,将教师借阅关系与学生借阅关系分开较为适宜。二、图书馆管理系统功能实现示意图由于教师与学生的借阅图书、归还图书等等过程大致相同,在此,仅借学生有关表对象信息来对各存储过程作简要说明:三、图书馆管理系统功能图例 读者借阅图书Execute RBorrowBook 读者号,图书分类号-读者借阅图书实例use LibrarySystemgoexec RBorrowBook T006324,D630.3 L836-其中T006324以T为标识,代表教师编号exec RBorrow
2、Book S0,D630.3 L836-其中S0以S为标识,代表学生学号go -结果如下: 读者归还图书Execute RReturnBook 读者号,图书分类号-读者归还图书实例use LibrarySystemgoexec RReturnBook T006324,D630.3 L836exec RReturnBook S0,D630.3 L836go -结果如下: 读者续借图书Execute RRenewBook 读者号,图书分类号-读者续借图书实例use LibrarySystemgo-读者借阅图书exec RBorrowBook T006324,D630.3 L836exec RBor
3、rowBook S0,D630.3 L836gowaitfor delay 0:0:5-读者续借图书exec RRenewBook T006324,D630.3 L836exec RRenewBook S0,D630.3 L836go -结果如下: 读者查询借阅图书情况Execute RQueryBook 读者号-读者查询图书借阅情况实例use LibrarySystemgoexec RQueryBook T006432exec RQueryBook S0go-结果如下: 读者检索图书信息Execute RIndexBook 关键词-读者检索图书信息实例use LibrarySystemgoe
4、xec RIndexBook 数据库go-结果如下:四、图书馆管理系统附加功能 往学生表中插入一列系部,其值等于学号中代表系部的位的值,再插入一列专业号,其值等于学号中代表专业的位的值-往学生表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 t
5、op 1 sno=Sno from Student where Sno not in(select top (i-1) Sno from Student) update Student set SDeptNo=substring(sno,4,2) where Sno=sno set i=i+1endselect * from Studentgo-结果如下: -往学生表S中插入一列专业号,其值等于学号中代表专业的位的值use LibrarySystemgoalter table Studentadd SMajorNo varchar(50)godeclare sno char(10),total
6、 int,i intselect total=count(*),i=1from Studentwhile(i=total)begin -查询数据表第i 行数据的SQL语句 select top 1 sno=Sno from Student where Sno not in(select top (i-1) Sno from Student) update Student set SMajorNo=substring(sno,4,4) where Sno=sno set i=i+1endgo-结果如下: 查询每个学生对书本的借阅数量-查询每个学生对书本的借阅数量use LibrarySystem
7、goselect 学号,Sname 姓名, 图书分类号,Bname 书名from StudentBook,Student,Bookwhere = and =order by compute count by go-结果如下: 查询各个专业的学生借阅书本的数量use LibrarySystemgodeclare tempDept table(专业编号char(4)primary key,专业varchar(30)not null,学生借阅书本数量int default 0)Insert into tempDept(专业编号,专业) select Mno,Mname from Majordecla
8、re i int,total int,no char(10)select total=count(*),i=1 from StudentBookwhile(itotal) begin select top 1 no=Sno from StudentBook where Sno not in(select top (i-1) Sno from StudentBook) update tempDept set 学生借阅书本数量=学生借阅书本数量+1 where 专业编号=substring(no,4,4) set i=i+1endselect * from tempDeptselect total as 学生借阅书本总量go -结果如下:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1