数据库课后题答案

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

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

SELECT * FROM 图书

2)查询全体图书的信息,其中单价打8折,并且将该列设置别名为’打折价’ 。

SELECT 图书号,书名,作者,出版社,单价*0.8 ‘打折价’ FROM 图书

3)显示所有借阅者的读者号,并去掉重复行。

SELECT DISTINCT 读者号FROM 借阅

4)查询所有单价在20到30之间的图书信息。

SELECT * FROM 图书

WHERE 单价BETWEEN 20 AND 30

5)查询所有单价不在20到30之间的图书信息。

SELECT * FROM 图书

WHERE 单价NOT BETWEEN 20.00 AND 30.00

6)查询机械工业出版社、科学出版社、人民邮电出版社的图书信息

SELECT * FROM 图书

WHERE 出版社IN (‘机械工业出版社’, ‘科学出版社’, ‘人民邮电出版社’)

7)查询既不是机械工业出版社、也不是科学出版社出版的图书信息

SELECT * FROM 图书

WHERE 出版社NOT IN (‘机械工业出版社’, ‘科学出版社’)

8)查找姓名的第二个字符是’建’并且只有两三个字符的读者的读者号、姓名。

SELECT 读者号,姓名FROM 读者WHERE 姓名LIKE ‘_建_’

9)查找姓名以’王’开头的所有读者的读者号、姓名。

SELECT 读者号,姓名FROM 读者WHERE 姓名LIKE ‘王%’

10)查找姓名以’王’、’张’或’李’开头的所有读者的读者号、姓名。

SELECT 读者号,姓名FROM 读者WHERE 姓名LIKE ‘[王张李]%’

11)查找姓名不是以’王’、’张’或’李’开头的所有读者的读者号、姓名。

SELECT 读者号,姓名FROM 读者WHERE 姓名NOT LIKE ‘[王张李]%’

12)查询无归还日期的借阅信息。

SELECT * FROM 借阅WHERE 归还日期IS NULL

13)查询有归还日期的借阅信息。

SELECT * FROM 借阅WHERE 归还日期IS NOT NULL

14)查询单价在20元以上,30元以下的机械工业出版社出版的图书名,单价。

SELECT 书名,单价FROM 图书WHERE 出版社=’机械工业出版社’ AND 单价>20.00 AND 单价<30.00

15)查询机械工业出版社或科学出版社出版的图书名,出版社,单价。

SELECT 书名,出版社,单价FROM 图书WHERE 出版社=’机械工业出版社’ OR 出版社=’科学出版社’

16)求读者的总人数

SELECT COUNT(*) AS ‘读者总人数’ FROM 读者

17)求借阅了图书的读者的总人数

SELECT COUNT(DISTINCT 读者号) AS ‘借阅过图书的读者总人数’ FROM 借阅

18)求机械工业出版社图书的平均价格、最高价、最低价。

SELECT AVG(单价) AS ‘平均价’,MAX(单价) AS ‘最高价’, MIN(单价) AS ‘最低价’ FROM 图书WHERE 出版社=’机械工业出版社’

19)查询借阅图书本数超过2本的读者号、总本数。并按借阅本数值从大到小排序。

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

FROM 借阅

GROUP BY 读者号

HA VING COUNT(*) > 2

ORDER BY COUNT(图书号) DESC

(6)针对以上三个表,用SQL语言完成以下各项多表连接查询、子查询、组合查询

1)查询读者的基本信息以及他/她借阅的情况。

SELECT * FROM 读者, 借阅WHERE 读者.读者号= 借阅. 读者号

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

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

FROM 读者, 图书,借阅

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

3)查询借阅了机械工业出版社出版,并且书名中包含’数据库’三个字的图书的读者,显示读者号、姓名、书名、出版社,借出日期、归还日期。

SELECT 读者.读者号,姓名,书名,出版社,借出日期,归还日期

FROM 读者,图书,借阅

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

AND 出版社=’机械工业出版社’ AND 书名LIKE ‘%数据库%’

4)查询至少借阅过1本机械工业出版社出版的书的读者的读者号、姓名、书名,借阅本数,并按借阅本数多少降序排列。

SELECT 借阅.读者号,姓名,书名, COUNT(借阅.图书号) ‘借阅本数’

FROM 读者, 图书,借阅

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

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

GROUP BY 借阅.读者号, 姓名,书名

HA VING COUNT(借阅.图书号) >=1

ORDER BY COUNT(借阅.图书号) DESC

5)查询与’王平’的办公电话相同的读者的姓名。

SELECT 姓名FROM 读者where 办公电话in (select办公电话from 读者where 姓名=’王平’

6)查询办公电话为’88320701’的所有读者的借阅情况,要求包括借阅了书籍的读者和没有借阅的读者,显示他们的读者号、姓名、图书号、借阅日期。

SELECT 读者.读者号,姓名,图书号,借出日期

FROM 读者LEFT JOIN 借阅ON 读者.读者号= 借阅.读者号

WHERE 办公电话=’88320701’

7)查询所有单价小于平均单价的图书号、书名、出版社

SELECT 图书号,书名,出版社FROM 图书

WHERE 单价< (SELECT A VG(单价) ‘平均单价’ FROM 图书)

8)查询’科学出版社’的图书中单价比’机械工业出版社’最高单价还高的的图书书名、单价。SELECT 图书号,单价FROM 图书

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

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

9)查询'科学出版社'的图书中单价比'机械工业出版社'最低单价高的的图书书名、单价。SELECT 图书号,单价FROM 图书

相关文档
最新文档