存储过程

1、建立存储过程完成图书管理系统中的借书功能。
   功能要求:                  
l    借书时要求输入借阅流水号,借书证号,图书编号。(即该存储过程有3个输入参数)                        
l    借书时,借书日期为系统时间。
l    图书的是否借出改为‘是’  

create or replace procedure lendBook
(
 v_lendid  lend.lid%type,
 v_readerid  reader.rid%type,
 v_bookid book.bid%type
)
as
begin
     insert into lend values(v_lendid, v_readerid, v_bookid,SYSDATE, NULL, NULL, NULL);
     update book set b_isborrow= '是'
     where book.bid = v_bid;
end;
 

2、建立存储过程完成图书管理系统中的预约功能。
l    预约时要求输入预约流水号,借书证号,ISBN。(即该存储过程有3个输入参数)
l    存储过程先检查输入的ISBN版本的图书是否都已借出,如果是则进行预约,否则提示“该书目有可借图书,请查找”。
l    预约时间为系统时间。

create or replace procedure bookingBook
(
 v_bookingid booking.bookid%type,
 v_readerid  reader.rid%type,
 v_bookid book.isbn%type
)
as
  v_not_borrow number;
begin
     --insert into lend values();
     select count(*) into v_not_borrow
     from book
     where book.b_isborrow = '否';
     if v_not_borrow = 0 then
       insert into booking values(v_bookingid, v_readerid, v_bookid, SYSDATE);
     else
         dbms_output.put_line('该书目有可借图书,请查找');
     end if;
end;

 

3、建立存储过程完成图书管理系统中的还书功能。
l    还书时要求输入借书证号,图书编号,罚款分类号(即该存储过程有3个输入参数)。
l    还书日期为系统时间。
l    图书的是否借出改为‘否’。

create or replace procedure sendBack
(
 v_rid lend.rid%type,
 v_bid  lend.bid%type,
 v_fid lend.fid%type
)
as
begin
     update lend
     set
     enddate = SYSDATE,
     fid = v_fid
     where
          v_rid = rid
          and v_bid = bid;

     update book
     set book.b_isborrow = '否';
end;

数据库系统概论课程设计之“图书馆数据库管理系统” ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 小组成员: *** QQ:763157698 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ “图书馆数据库备份文件”使用说明: 1、数据库备份文件还原时,应先将同目录下的备份文件 "LibrarySystem" 放置于“D:\LibrarySystem\”目录下; 2、该数据库使用到的所有数据均备份在同目录下的文件 "LibrarySystem" 中,读者可以根据需要还原数据、测试数据; 3、本课程设计附有“图书馆数据库管理系统的所有源代码”,您可以根据需要在“第四章节”至“第七章节”中进行查看,或查看与本课程设计处于同一目录下的 *.sql 源代码文件! 本图书馆管理系统谨根据实际需求所创建,创建有如下八个数据表:Book(图书信息表),Dept(学生系部信息表),Major(学生专业信息表),Student(学生信息表),StudentBook(学生借阅图书信息表),Teacher(教师信息表),TeacherBook(教师借阅图书信息表),RDeleted(读者还书信息表)等。这些数据表结合图书馆数据库中的五个存储过程,即实现了普通图书馆的大部分功能。如读者借阅图书功能(Execute RBorrowBook '读者号','图书分类号'),读者归还图书功能(Execute RReturnBook '读者号','图书分类号'),读者续借图书功能(Execute RRenewBook '读者号','图书分类号'),读者查询图书借阅情况功能(Execute RQueryBook '读者号'),读者检索的图书信息功能(Execute RIndexBook '关键字')等。具体的功能表现皆在“第三章、图书馆管理系统功能图例”中有详细的图例说明。 本图书馆管理系统谨根据实际需要,创建了七个触发器,就此,创作者对这些触发器做如下说明: 1、tri_Book 功能表现:只有在图书馆内相关书籍尚有库存的情况下,读者才可以进行借阅操作 2、tri_SborrowNum 功能表现:控制学生的图书借阅量在5本以内(包括5本) 3、tri_SrenewBook 功能表现:控制学生续借图书次数在3次以内(包括3次) 4、tri_SreturnBook 功能表现:将学生的还书信息插入RDeleted表 5、tri_TborrowNum 功能表现:控制教师的图书借阅量在10本以内(包括10本) 6、tri_TrenewBook 功能表现:控制学生续借图书次数在4次以内(包括4次) 7、tri_TreturnBook 功能表现:将教师的还书信息插入RDeleted表 本图书馆管理系统设计思路较为肤浅,但在一定程度上实现了图书馆数据库管理系统的实用功能。初次设计数据库,其中肯定会有不足之处,还望读者谅解!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值