经典SQL题1

该博客介绍了针对图书管理系统的几个经典SQL查询操作,包括找出借书超过5本的读者,查询借阅特定书籍的读者,查找过期未还图书,搜索包含特定关键词的图书,获取价格最高的图书信息,以及如何将某一班级学生的还书日期延长一周。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本题用到下面三个关系表:

CARD     借书卡。   CNO 卡号,NAME  姓名,CLASS 班级

BOOKS    图书。     BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数

BORROW   借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期

备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

要求实现如下15个处理:

  1 找出借书超过5本的读者,输出借书卡号及所借图书册数。(2)

  2 查询借阅了"水浒"一书的读者,输出姓名及班级。(3)

  3 查询过期未还图书,输出借阅者(卡号)、书号及还书日期。(3)

  4 查询书名包括"网络"关键词的图书,输出书号、书名、作者。(2)

  5 查询现有图书中价格最高的图书,输出书名及作者。(2)

  6 "C01"班同学所借图书的还期都延长一周。(3)

  答案:

1:

SELECT 借书卡号 = CNO,所借图书册数 = COUNT(DISTINCT BNO)

FROM BORROW

GROUP BY BORROW.CNO

HAVING COUNT(DISTINCT BNO) > 5

 

 

2:

SELECT 姓名=[NAME],班级=CLASS

FROM CARD

WHERE CNO IN(SELECT CNO FROM BORROW WHERE BNO = (SELECT BNO FROM BOOKS WHERE BNAME = '水浒'))

 

3:

SELECT CNO,BNO,RDATE

FROM BORROW

WHERE RDATE < GETDATE()

 

4:

SELECT 借阅者=BNO,书名=BNAME,作者=AUTHOR

FROM BOOKS

WHERE BNAME LIKE '%网络%'

 

5:

SELECT 书名=BNAME,作者 = AUTHOR

FROM BOOKS

WHERE PRICE = (SELECT MAX(PRICE) FROM BOOKS)

 

6:

UPDATE BORROW SET RDATE = DATEADD(MONTH,1,RDATE)

WHERE CNO IN(SELECT CNO FROM CARD WHERE CLASS = 'C01')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值