关于借书卡Card,图书Book,借书记录 Borrow,三表根据题目要求写SQL语句。

本文提供了一系列SQL查询案例,包括多表连接查询、模糊查询、触发器编写等实用技巧。通过具体场景如借书系统,展示了如何进行复杂的数据操作。

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

这三个表很综合的把SQL数据库查询语句给覆盖了,连接查询,模糊查询,编写触发器,视图等,有什么不会的可以评论交流,希望各位大牛多多指教。

借书卡:Card(Cno卡号,Name姓名,Class 班级)

图书:Book(Bno书号,Bname书名,Author作者,Price单价,Qty库存册数)

借书记录:Borrow(Cno借书卡号,Bno书号,Rdate 还书日期)

说明:限定每人每种书只能借一本,库存册数随借书、还书而改变。

a) 查询借书超过3次的读者,需要输出借书卡号和所借图书册数。

Select Cno,count(Bno) as 借书数量

from Borrow group by Cno

having count(Bno)>3

b) 查询借阅了“三国演义”一书的读者,输出姓名和班级。

Select Card.Name,Card.Class from Borrow

left join Book on Book.Bno = Borrow.Bno

left join Card on Card.Cno = Borrow.Cno

where Book.Bname=‘三国演义’

c) 查询过期未还图书,输出借书卡号、借书姓名、书号及还书日期。

Select Card.Cno,Card.Name,Borrow.Bno,Borrow.Rdate from Borrow

left join Card on Card.Cno=Borrow.Cno

Where getdate()>Borrow.Rdat

d) 查询现有图书中价格最高的图书,输出书名和作者。

Select Bname,Author from Book

where price in (Select max(price) from Book)

e) 查询书名包括“网络”关键词的图书,输出书号、书名、作者

Select Bno,Bname,Author from Book where Bname like ‘%网络%’

f) 在Borrow表上建立一个触发器,如果读者借阅的书名是“数据库技术及应用”,就将该读者的借阅记录保存在Borrow_Save表中(与Borrow表结构相同)

Create Trigger T_Save On Borrow

For Insert

As

Begin

Insert into Borrow_Save Select * from Inserted where Bname=‘数据库技术及应用’

End

g) 建立一个视图,显示“开发2班”学生的借书信息(只要求显示姓名和书名)

Create View V_Borrow

As

Select Card.Name,Card.Class from Borrow

left join Book on Book.Bno = Borrow.Bno

left join Card on Card.Cno = Borrow.Cno

where Card.Class=‘开发2班

转载于:https://www.cnblogs.com/guxing7758/p/7832864.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值