问答题
设有3个基本表,表的结构如下所示,请用SQL完成下列查询。
BORROWER:
|
借书证号
|
姓名
|
系名
|
班级
|
|
105060911
|
欧阳
|
信息系
|
98-1
|
|
106880112
|
刘诚
|
信息系
|
98-1
|
|
105080103
|
赵林
|
计算机系
|
98-2
|
|
104230891
|
郑晓晓
|
外语系
|
05-4
|
LOANS:
|
借书证号
|
图书馆登记号
|
借书日期
|
|
105060911
|
T00101
|
1999.04.01
|
|
106880112
|
T00102
|
1999.05.01
|
|
105080103
|
T00201
|
1999.05.31
|
|
104230891
|
T00102
|
2010.1.23
|
BOOKS:
|
索书号
|
书名
|
作者
|
图书登记号
|
出版社
|
价格
|
|
TP311.13
|
数据库系统与应用
|
李昭原
|
T00101
|
科学
|
19.00
|
|
TP311.13
|
数据库原理与应用
|
李昭原
|
T00102
|
科学
|
19.00
|
|
TP.065
|
数据库系统原理
|
李昭原
|
T00201
|
北航
|
6.50
|
|
TP.1599
|
数据库原理教程
|
王珊
|
T00101
|
清华
|
18.50
|
①检索至少借了5本书的同学的借书证号、姓名、系名和借书数量。
②检索借书和欧阳同学所借图书中的任意一本相同的学生姓名、系名、书名和借书日期。
③建立信息系学生借书的视图SSP,该视图的属性列明由借书证号、姓名、班级、图书登记号、书名、出版社和借书日期组成。
【正确答案】
【答案解析】①SELECT LOAN.借书证号,姓名,系名,COUT(*) AS 借书数量
FROM BORROWER,LOANS
WHERE BORROW.借书证号=LOANS.借书证号
GROUP BY LOANS.借书证号
HAVING COUT(*)>5
②SELECT姓名,系名,书名,借书日期
FROM BORROWER,LOANS,BOOKS
WHERE BORROWER.借书证号=LOANS.借书证号 AND LOANS.图书登记号=BOOKS.图书登记号
AND 索书号 IN(SELECT 索书号 FROM BORROWER,LOANS,BOOKS
WHERE BORROW.借书证号=LOANS.借书证号
AND LOANS.图书登记号=BOOKS.图书登记号
AND 姓名="欧阳");
③CREATE VIEW SSP
AS
SELECT BORROWER.借书证号,姓名,班级,LOANS.图书登记号,书名,出版社,借书日期
FROM BORROWER.借书证号=LOANS.借书证号
AND LOANS.图书登记号=BOOKS.图书登记号 AND 系名="信息系";