SQL语句练习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL语句复习题

设有一图书馆数据库,包括三个表:图书表、读者表、借阅表。

图书表(图书号,书名,作者,出版社,单价)

读者表(读者号,姓名,性别,部门)

借阅表(读者号,图书号,借出日期,归还日期)

试用SQL的查询语句表达下列查询:

(1)查询全体图书的图书号,书名,作者,出版社,单价。

(2)查询机械工业出版社图书的平均价格、最高价、最低价。

(3)查询读者的读者号、姓名、借阅的图书名、借出日期、归还日期。

(4)查询借阅图书本数超过2本的读者号、总本数。并按借阅本数值从大到小排序。(5)查询’科学出版社’的图书中单价比’机械工业出版社’最高单价还高的的图书书名、单价。

(6)查询已被借阅过并已归还的图书信息。

(7)给图书表增加一列“ISBN”,数据类型为CHAR(10)

(8)向读者表加入一个新读者,该读者的信息为:

(‘200197’, ‘王小平’, ‘男’ , ’物理系’)

(9)完成读者’王小平’在借出一本图书10日后归还该书的归还日期的更新。

(10)当读者’王小平’按期归还图书时,删除借阅记录。

答案:

(1) SELECT 图书号,书名,作者,出版社,单价

FROM 图书

或者

SELECT * FROM 图书

(2)SELECT AVG(单价)AS‘平均价’,MAX(单价)AS‘最高价’, MIN(单价)AS‘最低价’FROM 图书

WHERE 出版社=’机械工业出版社’

(3)SELECT 读者.读者号,姓名,书名,借出日期,归还日期

FROM 读者,图书,借阅

WHERE 读者.读者号 = 借阅.读者号 AND 图书.图书号=借阅.图书号

(4)SELECT 读者号,COUNT(图书号) AS ‘总本数’

FROM 借阅

GROUP BY 读者号

HAVING COUNT(*) > 2

ORDER BY COUNT(图书号) DESC

(5)SELECT 图书号,单价 FROM 图书

WHERE 出版社=’科学出版社’ AND 单价>(

SELECT MAX(单价) FROM 图书 WHERE 出版社=’机械工业出版社’) 或者

SELECT 图书号,单价 FROM 图书

WHERE 出版社='科学出版社' AND 单价>ALL (

SELECT 单价 FROM 图书 WHERE 出版社='机械工业出版社')

(6) SELECT * FROM 图书

WHERE 图书号 IN (SELECT 图书号 FROM 借阅 WHERE 归还日期 IS NOT NULL)

或者

SELECT * FROM 图书 B1

WHERE EXISTS (SELECT * FROM 借阅 B2

WHERE B1.图书号=B2.图书号 AND 归还日期 IS NOT NULL)

(7)ALTER TABLE 图书

ADD ISBN CHAR(10)

(8)INSERT INTO 读者

V ALUES (‘200197’, ‘王小平’, ‘男’, ‘物理系’)

(9)UPDATE 借阅

SET 归还日期= 借出日期+ 10

WHERE 读者号=(SELECT 读者号FROM 读者WHERE 姓名=’王小平’ ) (10)DELETE FROM 借阅

WHERE 读者号=(SELECT 读者号FROM 读者

WHERE 姓名= ‘王小平’ )

相关文档
最新文档