三个表:图书信息表、读者信息表、借阅表
图书信息(书号、书名、作者、出版日期、出版社、图书存放位置、总数量)
读者信息表(图书证号、姓名、所在系、借书上限数)
借阅表(图书证号、书号、借出日期、应还日期)
数据库表结构如下:
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小时内删除。