您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页实验八SQL数据查询参考答案

实验八SQL数据查询参考答案

来源:好走旅游网
实验⼋SQL数据查询参考答案

实验⼋SQL 数据查询

本实验以‘图书管理’数据库的‘图书’‘读者’‘借阅’3个表为基础进⾏查询操作。1、查询‘⾼等教育出版社’和‘⼈民出版社’的图书的书名、作者和出版社。

SELECT 书名,作者,出版社FROM 图书WHERE 出版社=\"⾼等教育出版社\" OR 出版社=\"⼈民出版社\"SELECT 书名,作者,出版社FROM 图书WHERE 出版社in(\"⾼等教育出版社\" ,\"⼈民出版社\")2、查询‘⾼等教育出版社’和‘中⼭⼤学出版社’图书的所有情况。

SELECT * FROM 图书WHERE 出版社=\"⾼等教育出版社\" OR 出版社=\"中⼭⼤学出版社\"3、查询各个出版社的图书最⾼价、平均价和种类数。

SELECT 出版社, MAX(单价) AS 最⾼价, A VG(单价) AS 平均价, COUNT(总编号) AS 种类数FROM 图书GROUP BY 出版社4、查询所有已借出的图书书名(不计重复图书)。⽤多数据表连接⽅式**没有重复

select distinct 书名from 图书, 借阅;where 图书.总编号=借阅.总编号

SELECT DISTINCT 书名AS 已借出的图书;FROM 图书,借阅WHERE 图书.总编号=借阅.总编号注意,⽤不⽤DISTINCT,命令的结果是不⼀样的。**⽤⼦查询形式

select distinct 书名from 图书where 总编号in (select 总编号from 借阅)**⽤⼦查询形式

select distinct 书名from 图书where 总编号in (select 总编号from 借阅)5、查询借书证号为A103003的读者姓名和所借图书的书名。SELECT 姓名,书名,作者,出版社FROM 图书,借阅,读者;WHERE 图书.总编号=借阅.总编号;AND 读者.借书证号= 借阅.借书证号;AND 读者.借书证号=\"A103003\"

6、查询已借出的图书有多少种(不计重复图书)。**不计重复图书

select count(distinct 总编号) from 借阅

SELECT COUNT(distinct 总编号) AS 已借出的图书总类FROM 借阅

7、查询所藏图书中有20种及以上图书的出版社所出版的图书的最⾼价和平均价。分组统计筛选

SELECT 出版社, MAX(单价) AS 最⾼价, A VG(单价) AS 平均价FROM 图书GROUP BY 出版社HA VING COUNT(*)>=20注意:HA VING COUNT(*)>=20也可以是HA VING COUNT(总编号)>=20

8、查询与借书证号为A103003号借有相同书的借书证号。**⽤⼦查询形式

select 借书证号,总编号 from 借阅 where 总编号 in (select 总编号 from 借阅 where 借书证号='A103003')select 借书证号,总编号from 借阅where 总编号in (select 总编号from 借阅where 借书证号='A103003')此命令有重复的,即把A103003也包含在内了,因此要排除借书证号为A103003的这条记录。正确的是:

select distinct 借书证号from 借阅where 总编号in (select 总编号from 借阅where 借书证号=\"A103003\") and 借书证号!=\"A103003\"

9、查询借书证号为A103003号的读者姓名和所借图书的总⾦额。SELECT 姓名, SUM(单价) AS 所借图书的总⾦额;

FROM 图书,借阅,读者WHERE 读者.借书证号=借阅.借书证号AND 图书.总编号=借阅.总编号AND 读者.借书证号=\"A103003\"10、查询所有借阅了图书的读者姓名、单位、所借图书的书名、借书⽇期。SELECT 姓名,单位,书名AS 所借图书的书名,借书⽇期FROM 图书,借阅,读者;WHERE 读者.借书证号=借阅.借书证号AND 图书.总编号=借阅.总编号11、查询只借了⼀本图书的读者姓名。select 姓名from 借阅,读者;

where 借阅.借书证号=读者.借书证号;

group by 读者.借书证号having count(总编号)=1或者以下⽅法(⼦查询):

select 姓名from 读者where 借书证号in (select 借书证号from 借阅 ;group by 借书证号having count(总编号)=1)

12、查询书名以‘计算机’开头的所有图书的书名和作者。⽅法⼀:

SELECT 书名,作者FROM 图书WHERE 书名=\"计算机\"⽅法⼆:

select 书名,作者from 图书where left(书名,6)='计算机'⽅法三:

select 书名,作者from 图书where 书名like '计算机%'13、查询书名含有‘计算机’的所有图书的书名和作者。⽅法⼀:

SELECT 书名,作者FROM 图书WHERE \"计算机\" $书名⽅法⼆:

select 书名,作者from 图书where 书名like '%计算机%'14、查询藏书中⽐⾼教出版社的所有图书的书价更⾼的书。⽅法⼀:

SELECT * FROM 图书WHERE 单价>( SELECT MAX(单价) FROM 图书WHERE 出版社=\"⾼等教育出版社\")

⽅法⼆:

select * from 图书where 单价> all (select 单价from 图书;where 出版社='⾼等教育出版社')

15、查询与‘郑盈莹’在同⼀天借书的读者姓名、所在单位和所借的图书书名。

select 姓名,书名,单位from 读者,图书,借阅where 图书.总编号=借阅.总编号and 读者.借书证号=借阅.借书证号and 借书⽇期in(select 借书⽇期from 读者,借阅where 读者.借书证号=借阅.借书证号and 姓名='郑盈莹') and 姓名!='郑盈莹'下⾯这条命令包括了“郑盈莹”,不合要求:

select 姓名,单位,借书⽇期,书名 from 借阅,读者,图书 ;

where 借阅.借书证号=读者.借书证号 .and. 图书.总编号=借阅.总编号 and 借书⽇期 in (select 借书⽇期 from 借阅,读者 ;where 借阅.借书证号=读者.借书证号and 姓名='郑盈莹') order by 借书⽇期16、查询没有借阅过图书的读者姓名和所在单位。select 姓名,单位from 读者;

where 读者.借书证号not in (select 借书证号from 借阅)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务