设图书借阅数据库包含以下表:图书(书号,书名,作者)读者(读者号,姓名,年龄,性别)借阅(书号,读者号,借期,还期) 注:还期值为NULL表示该书未还
1.设计T-SQL语句完成下列操作:
(1)查询年龄最大的5名读者的信息。
(2)查询借阅过书名为《三体》的图书的读者号。(要求使用嵌套查询完成)
(3)列出借阅书籍多于10本的读者号。
(4)设2018年12月2日“R001”号读者借阅“B1234”号图书,请添加相应借阅记录。
(5)定义未还书的读者姓名及其未还书名信息的视图“未还信息”。
2.创建存储过程P1,根据给定的读者号,先查询该读者的信息,再查其所有借阅记录,并查询其未还图书数量。执行该存储过程, 查询“R001”号读者的这些信息。
3.创建触发器T1,实现当修改一条借阅信息时,如果“还期”小于“借期”,则撤销该操作,并给出提示“还期不能早于借期”。再编写一条语句激活该触发器。
这里有部分参考:
-- 第三题
SELECT
读者号
FROM
借阅
GROUP BY
读者号
HAVING
COUNT(1) > 10;
-- 第五题
CREATE VIEW 未还书视图 AS SELECT
姓名,
书名
FROM
读者 A,
借阅 B,
图书 C
WHERE
A.读者号 = B.读者号
AND B.书号 = C.书号
AND B.还期 IS NULL
GROUP BY
A.姓名,
C.书名
第二大问和第三大问
都是小问题吗,最多只能解答到这儿。绝知此事要躬行。
第一问 排序后取前面五条 涉及order by和 limit(mysql 的是limit)
第二问 查读者号 所以读者号最外层,里层时图书和借阅关联