77范文网 - 专业文章范例文档资料分享平台

SQL网络数据库 习题参考答案(2)

来源:网络收集 时间:2020-04-16 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

此句等价于: SELECT * FROM 图书

WHERE 单价< 20 OR 单价 >30

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

WHERE 出版社 IN (‘机械工业出版社’, ‘科学出版社’, ‘人民邮电出版社’) 此句等价于: SELECT * FROM 图书

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

OR 出版社= ‘科学出版社’ OR 出版社= ‘人民邮电出版社’ 7)查询既不是机械工业出版社、也不是科学出版社出版的图书信息 SELECT * FROM 图书

WHERE 出版社 NOT IN (‘机械工业出版社’, ‘科学出版社’) 此句等价于: SELECT * FROM 图书

WHERE 出版社!=’机械工业出版社’ AND 出版社!= ‘科学出版社’

8)查找姓名的第二个字符是’建’并且只有两三个字符的读者的读者号、姓名。 SELECT 读者号,姓名 FROM 读者 WHERE 姓名 LIKE ‘_建_’ 9)查找姓名以’王’开头的所有读者的读者号、姓名。 SELECT 读者号,姓名 FROM 读者 WHERE 姓名 LIKE ‘王%’

10)查找姓名以’王’、’张’或’李’开头的所有读者的读者号、姓名。 SELECT 读者号,姓名 FROM 读者 WHERE 姓名 LIKE ‘[王张李]%’

11)查找姓名不是以’王’、’张’或’李’开头的所有读者的读者号、姓名。 SELECT 读者号,姓名 FROM 读者 WHERE 姓名 LIKE ‘[^王张李]%’ 此句等价于:

SELECT 读者号,姓名 FROM 读者 WHERE 姓名 NOT LIKE ‘[王张李]%’ 12)查询无归还日期的借阅信息。

SELECT * FROM 借阅 WHERE 归还日期 IS NULL 不等价于:SELECT * FROM 借阅 WHERE 归还日期=’’ 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 读者号 HAVING COUNT(*) > 2 ORDER BY COUNT(图书号) DESC

(6)针对以上三个表,用SQL语言完成以下各项多表连接查询、子查询、组合查询 1)查询读者的基本信息以及他/她借阅的情况。 SELECT 读者.*,借阅.* FROM 读者, 借阅 WHERE 读者.读者号 = 借阅. 读者号 上述是等值连接,改为自然连接,表示如下:

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 借阅.读者号, 姓名,书名 HAVING COUNT(借阅.图书号) >=1 ORDER BY COUNT(借阅.图书号) DESC

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

FROM 读者 R1, 读者 R2

where R1.办公电话= R2.办公电话 AND R1.姓名= ‘王平’

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

WHERE 读者.读者号*=借阅.读者号 AND 办公电话=’88320701’ 上述左外连接可可以用右外连接等价表示: SELECT 读者.读者号,姓名,图书号,借出日期 FROM 读者,借阅

WHERE 借阅.读者号 =* 读者.读者号 AND 办公电话=’88320701’

在SQLSERVER2000中,以上左外连接还可等价表示为: SELECT 读者.读者号,姓名,图书号,借出日期

FROM 读者 LEFT JOIN 借阅 ON 读者.读者号= 借阅.读者号 WHERE 办公电话=’88320701’ 或者用右连接表示为:

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

FROM 借阅 RIGHT JOIN 读者 ON 借阅.读者号= 读者.读者号 WHERE 办公电话=’88320701’

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

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

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

SELECT 图书号,单价 FROM 图书

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

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

SELECT 图书号,单价 FROM 图书

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

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

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

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

SELECT 图书号,单价 FROM 图书

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

SELECT 单价 FROM 图书 WHERE 出版社='机械工业出版社') 10)查询已被借阅过并已归还的图书信息。 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) 11)查询从未被借阅过的图书信息。 SELECT * FROM 图书

WHERE 图书号 NOT IN (SELECT 图书号 FROM 借阅) 等价于:

SELECT * FROM 图书 B1

WHERE NOT EXISTS (SELECT * FROM 借阅 B2 WHERE B1.图书号=B2.图书号) 12)查询正在借阅的图书信息。 SELECT * FROM 图书 B1

WHERE B1.图书号 IN (SELECT B2.图书号 FROM 借阅 B2 WHERE B1.图书号=B2.图书号 AND B2.归还日期 IS NULL) 等价于:

SELECT * FROM 图书 B1

WHERE EXISTS (SELECT * FROM 借阅 B2

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

13)查询借阅了机械工业出版社出版的书名中含有数'据库书'三个字的图书、或者借阅了科学出版社出版的书名中含有数'据库书'三个字的图书的读者姓名、书名。 SELECT 姓名,书名 FROM 图书,读者,借阅

WHERE 图书.图书号=借阅 .图书号 AND 读者.读者号=借阅.读者号 AND 出版社='机械工业出版社' AND 书名 LIKE '%数据库%'

UNION

SELECT 姓名,书名 FROM 图书,读者,借阅

WHERE 图书.图书号=借阅 .图书号 AND 读者.读者号=借阅.读者号 AND 出版社='科学出版社' AND 书名 LIKE '%数据库%'

14)查询借阅了机械工业出版社出版的书名中含有数'据库书'三个字的图书并且也借阅了科学出版社出版的书名中含有数'据库书'三个字的图书的读者姓名、书名。 SELECT 姓名,书名 FROM 图书,读者,借阅

WHERE 图书.图书号=借阅 .图书号 AND 读者.读者号=借阅.读者号 AND 出版社='机械工业出版社' AND 书名 LIKE '%数据库%' INTERSECT SELECT 姓名,书名 FROM 图书,读者,借阅

WHERE 图书.图书号=借阅 .图书号 AND 读者.读者号=借阅.读者号 AND 出版社=' 科学出版社' AND 书名 LIKE '%数据库%'

SQL SERVER 2000用的是TSQL,TSQL没有关键字INTERSECT,而是用EXISTS来实现查询结果的交运算。上述查询在SQL SERVER 2000中应表示为: SELECT 姓名,书名 FROM 图书,读者 R1,借阅

WHERE 图书.图书号=借阅 .图书号 AND R1.读者号=借阅.读者号 AND 出版社='机械工业出版社' AND 书名 LIKE '%数据库%' AND EXISTS ( SELECT *

FROM 图书,读者 R2,借阅

WHERE 图书.图书号=借阅 .图书号 AND R2.读者号=借阅.读者号 AND 出版社=' 科学出版社' AND 书名 LIKE '%数据库%' AND R1.读者号=R2.读者号)

15)查询借阅了机械工业出版社出版的书名中含有数'据库书'三个字的图书但没有借阅了科学出版社出版的书名中含有数'据库书'三个字的图书的读者姓名、书名。 SELECT 姓名,书名 FROM 图书,读者,借阅

WHERE 图书.图书号=借阅 .图书号 AND 读者.读者号=借阅.读者号 AND 出版社='机械工业出版社' AND 书名 LIKE '%数据库%' MINUS

SELECT 姓名,书名

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库SQL网络数据库 习题参考答案(2)在线全文阅读。

SQL网络数据库 习题参考答案(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/975817.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: