三个表:图书信息表、读者信息表、借阅表 图书信息(书号、书名、作者、出版日期、出版社、图书存放位置、总数量) 读者信息表(图书证号、姓名、所在系、借书上限数) 借阅表(图书证号、书号、借出日期、应还日期) 数据库表结构如下: BOOK(BNO, BN, BAU, BDA, BPU, BPL, BNU) READER(RNO, RN, RDE, RUP) BORROW(RNO, BNO, BDA, RDA) 1、 查询“S0701026”读者借了相同图书的读者的图书证号和姓名 select rno,rn from reader where rno in( from borrow as a,borrow as b where a.bno=b.bno ='S0701026') 2、 查询每个读者的姓名和所借图书名 select rn,bn from reader,borrow,book = and borrow.bno=book.bno 3、 查没有借书的读者的图书证号和姓名 select rno,rn from reader where rno not in(select rno from borrow) 4、 查询借阅了“数据结构”的读者数量 select count(*) from borrow where bno=(select bno from book where bn='数据结构') group by bno 5、 查“李丽”和“张朝阳”都借阅了的图书的书号 select a.bno from borrow as a,borrow as b =(select rno from reader where rn='李丽') =(select rno from reader where rn='张朝阳') and a.bno=b.bno 6、查询借书上限最大的读者信息 select * from reader where rup=(select max(rup) from reader) order by rup desc 7、查询借阅图书数量达到2本的读者信息 select * from reader where rno in(select rno from borrow group by rno having count(*)>1) 8、查询每个读者姓名,所借图书的图书号,没有借书的读者也列出来 ,bno from reader left join borrow = 9、检索所有姓李的读者所借图书的书号 select bno from borrow where rno in(select rno from reader where rn like '李%') 10、查询借阅了“数据库原理及其应用教程”的读者的图书证号和姓名 ,rn from reader,borrow,book = and borrow.bno=book.bno and bn='数据库原理及其应用教程' 11、统计各个系读者的数量,显示系名和数量 select rde as系名,count(*) as数量from reader group by rde 12、查询有过期未还图书的读者的书号、姓名、所在系 select bno,rn,rde from reader,borrow = and rda < getdate() 13、检索至少借阅了“数据结构”和“操作系统教程”的读者图书证号 from borrow as a,borrow as b where a.bno=(select bno from book where bn='数据结构') and b.bno=(select bno from book where bn='操作系统教程') =b.rno 14、查库存书的总数 select sum(bnu) from book 15、查询借阅了图书的读者信息 select * from reader where rno in(select rno from borrow) 16、查询被借阅的图书号以’TP’开头的图书信息 select * from book where bno in (select bno from borrow where bno like 'TP%') 17 、读者总数 select COUNT (*) from reader 18、检索书名中包含“数据库”的图书信息 select * from book where bno in(select bno from borrow where bn like '%数据库%') 19 、检索所有包含“工业”出版的图书信息 select * from book where bno in (select bno from borrow where bPU like '%工业%') 20、书号降序 select * from Book order by BNO desc 21、查2005年以前出版的图书信息 select * from book where year(bda)<2005 22、查图书位置以3开头的图书信息 select * from book where bpl in(select bpl from borrow where bpl like '3%') 23、 查询当天借出去的图书信息 select *from book,borrow where bda=GETDATE() 24、统计图书证号以‘S’开头的读者数 select COUNT (*) from reader where rno in(select rno from borrow where rno like 'S%') 25、查计算机系读者的信息 select *from reader where rde = '计算机' 26、统计图书证号为“S0701026”的读者借书的数量 select COUNT(*) from borrow where rno='S0701026' 27、查询图书证号是以“S”开头的读者借书上限的平均值 select sum(RUP)/COUNT(*) from reader where rno like 'S%' 28、检索没有借阅“操作系统教程”的读者信息。 select * from reader where rno not in( select rno from borrow where bno=( select bno from book where bn='操作系统教程')) 29、列出已借出去的每本书的书号及借阅人数 select BNO,COUNT (*) FROM BORROW GROUP BY BNO 30、查询张朝阳和李丽都借阅的图书书号 select A.bno from borrow as A, borrow as B in (select rno from reader where rn='李丽' ) in 数据库原理及应用期末考试题(select rno from reader where rn='张朝阳') and A.bno=B.bno 31、统计每个系借书情况,显示系名、数量 select rde系名,count(*)数量from reader group by rde 32、检索借阅了图书的读者信息图书证号、姓名。 ,rn from reader,borrow,book = and borrow.bno=book.bno 33、查借出图书的总数 select COUNT(*) from borrow 34、统计图书证号以‘T’开头的读者数 select COUNT (*) from reader where rno in(select rno from borrow where rno like 'T%') 35、查没有被借阅的图书信息 select * from book where bno not in(select bno from borrow) 36、检索出版日期在2005年到2008年的图书信息 (√) select* from book where YEAR(bda)>=2005 and YEAR(bda)<=2008 37、查询没有借阅“C程序设计”的读者姓名 select rn from reader where rno not in( select rno from borrow where bno=( select bno from book where bn='C程序设计')) 38、检索图书证号为“S0601001”的读者借阅的图书编号 select bno from borrow where rno='S0601001' |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论