SQL数据库library查询 下载本文

1.从USER表中查询所有用户的姓名和单位

select姓名,单位 Fromdbo.Users

2.查询所有图书的信息

select*

Fromdbo.BookInfo

3.查询单位为“计算机学院”的用户的全部信息

select* Fromdbo.Users

where单位='计算机学院';

4.查询已经预约但还没有借出的书的信息

select* fromdbo.Books where状态='3'

5.查询在这一星期之内借出且还没有归还的所有书的借阅证号、书号。

select借阅证号,书号 Fromdbo.Loan

WhereDATEDIFF(DAY,借阅日期,GETDATE())<=7;

6.查询“清华出版社”出版的所有英文书的书名、作者、价格。

select书名,作者,价格 Fromdbo.BookInfo

where出版社='清华大学出版社'AND语言='英文'

7查询在流通总库或者是属于管理学院资料室的尚未借出的书 selectdistinctBookInfo.书名 from[dbo].[Books],[dbo].[BookInfo] whereBookInfo.ISBN=Books.ISBNand Books.状态='0'and

Books.位置IN('流通总库','管理学院资料室');

8.查询价格在30元到50元之间的书

select书名

from[dbo].[BookInfo]

where价格between 30 and 50;

9.查询2002年的借阅历史情况

select*

from[dbo].[LoanHist]

where借阅日期between'2002-01-01 00:00:00.000'and'2002-12-31 00:00:00.000';

10.查询李军、吴红、刘明三个人合作编写的书的书名、作者、出版社和价格

select书名,作者,出版社,价格 from[dbo].[BookInfo]

where作者='李军,吴红,刘明';

11.查询书名包含“数据库”的所有书名、作者、出版社和价格

select书名,作者,出版社,价格 from[dbo].[BookInfo] where书名LIKE'%数据库%'

12.查询书名包含“数据库”的所有书名、作者、出版社及价格*1.5

select书名,作者,出版社,1.5*价格 from[dbo].[BookInfo] where书名LIKE'%数据库%'

13.查询所有预约借书但还没有预约成功的信息,并按预约时间的先后排序。

select*

from[dbo].[Reservation],[dbo].[Books] whereBooks.ISBN=Reservation.ISBN ANDReservation.状态!='T' ANDBooks.状态IN('1','3')

ORDERBY预约日期ASC;

14.对上题的查询结果按每种书先排序,同一种书再按预约日期降序排序

selectISBN,预约日期,借阅证号 from[dbo].[Reservation] whereReservation.状态!='T' orderbyISBN,预约日期ASC;

15.查询书的价格在所有书中排在前10%的书名、作者、出版社和定价

16.查询所有图书的语言种类

selectdistinct语言 from[dbo].[BookInfo];

17.查询借阅用户总人数

selectcount(姓名)as人数 from[dbo].[Users];

18.查询当前正借有书的用户总人数

selectCOUNT(distinct借阅证号) from[dbo].[Loan];

19.查询因用户丢失图书而赔偿的总金额。

selectsum(金额) from[dbo].[money] where原因='丢失图书';

20.查询用户对书的平均借阅时间:按照用户分组,查询每个用户的平均借阅时间

21.查询书的价格最高和最低的两种书。

SELECT[书名],[价格] FROMBookInfo

WHERE[价格]=(SELECTMAX([价格])FROMBookInfo) UNION

SELECT[书名],[价格] FROMBookInfo

WHERE[价格]=(SELECTMIN([价格])FROMBookInfo);

22.查询图书馆从各个出版社购进的书各有多少种。

select出版社,count(出版社) from[dbo].[BookInfo] groupby出版社;

23.查询每种图书的书名和其库存量,并对结果按库存量排序 selectISBN,count(ISBN) from[dbo].[Books] groupbyISBN

orderbycount(ISBN)DESC;

selectISBN,count(ISBN)as库存量 from[dbo].[Books] groupbyISBN orderby库存量DESC

24.对上题的查询结果只返回库存量在10(2)本以上的书名和库存量

selectBookInfo.书名,count(BookInfo.ISBN)as库存量 from[dbo].[Books],[dbo].[BookInfo] whereBookInfo.ISBN=Books.ISBN groupbyBookInfo.书名

havingcount(BookInfo.ISBN)>2;

25.查询2002年各种情况收费的总数大于5000元的金额和收费原因

select原因,sum(金额) from[dbo].[money]

where日期between'2002-01-01 00:00:00.000'and'2002-12-31 00:00:00.000' groupby原因

havingsum(金额)>6000.00

26.查询当前借书用户的借阅证号、姓名、书号、借书日期

selectLoan.借阅证号,Users.姓名,Loan.书号,Loan.借阅日期 from[dbo].[Users],[dbo].[Loan] whereLoan.借阅证号=Users.借阅证号;

27.查询当前借书过期还没归还的用户的借阅证号、姓名、书名、借书日期、过期天数,并按借阅证号排序