这三个表很综合的把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班’