您的当前位置:首页正文

SQL Server 2005 数据查询练习题及答案

2023-08-29 来源:个人技术集锦
SQL Server 2005 数据查询练习题及答案 练习题1: 现有图书管理数据库的三个关系模式: 图书(总编号,分类号,书名,作者,出版单位,单价) 读者 (借书证号,单位,姓名,性别,职称,地址) 借阅 (借书证号,总编号,借书日期) 1. 利用SQL Server 2000创建图书管理库和图书、读者和借阅三个基本表的表结构: 2. 利用SQL Server 2000在三个表中分别插入以下所给元组: 图书: 总编号 445501 445502 445503 332211 112266 665544 114455 113388 446601 446602 446603 449901 449902 118801 118802 分类号 TP3/12 TP3/12 TP3/12 TP5/10 TP3/12 TS7/21 TR9/12 TR7/90 TP4/13 TP4/13 TP4/13 TP4/14 TP4/14 TP4/15 TP4/15 书名 数据库导论 数据库导论 数据库导论 计算机基础 FoxBASE 高等数学 线性代数 大学英语 数据库基础 数据库基础 数据库基础 FoxPro大全 FoxPro大全 计算机网络 计算机网络 作者 王强 王强 王强 李伟 张三 刘明 孙业 胡玲 马凌云 马凌云 马凌云 周虹 周虹 黄力钧 黄力钧 出版单位 科学出版社 科学出版社 科学出版社 高等教育出版社 电子工业出版社 高等教育出版社 北京大学出版社 清华大学出版社 人民邮电出版社 人民邮电出版社 人民邮电出版社 科学出版社 科学出版社 高等教育出版社 高等教育出版社 单价 17.90 17.90 17.90 18.00 23.60 20.00 20.80 12.50 22.50 22.50 22.50 32.70 32.70 21.80 21.80 读者: 借书证号 111 112 113 114 115 116 117 118 119 120 121 122 123 124 单位 信息系 财会系 经济系 信息系 信息系 信息系 计算机系 计算机系 计算机系 国际贸易 国际贸易 国际贸易 财会系 财会系 姓名 王维利 李 立 张 三 周华发 赵正义 李 明 李小峰 许鹏飞 刘大龙 李 雪 李 爽 王 纯 沈小霞 朱 海 性别 女 男 男 男 男 男 男 男 男 男 女 女 女 男 职称 教授 副教授 讲师 讲师 工程师 副教授 助教 助工 教授 副教授 讲师 讲师 助教 讲师 地址 1号楼424 2号楼316 3号楼105 1号楼316 1号楼224 1号楼318 1号楼214 1号楼216 1号楼318 4号楼506 4号楼510 4号楼512 2号楼202 2号楼210 125 财会系 马英明 男 副教授 2号楼212 借阅: 借书证号 112 125 111 112 114 120 120 119 112 115 118 练习题2: 用SQL完成如下查询: 1) 找出姓李的读者姓名和所在单位。 2) 列出图书库中所有藏书的书名及出版单位。 3) 查找高等教育出版社的 所有图书及单价,结果按单价降序排序。 4) 查找价格介于10元和20元之间的图书种类,结果按出版单位和单价升序排序。 5) 查找书名以计算机打头的所有图书和作者。 6) 检索同时借阅了总编号为112266和449901两本书的借书证号。 7) 查找所有借了书的读者的姓名及所在单位。 8) 找出李某所借图书的所有图书的书名及借书日期。 9) 查询1997年10月以后借书的读者借书证号、姓名和单位。 10) 找出借阅了FoxPro大全一书的借书证号。 11) 找出与赵正义在同一天借书的读者姓名、所在单位及借书日期 。 12) 查询1997年7月以后没有借书的读者借书证号、姓名及单位。 练习题3: 完成下面SQL高级查询: 13) 求科学出版社图书的最高单价、最低单价、平均单价。 14) 求信息系当前借阅图书的读者人次数。 15) 求出各个出版社图书的最高价格、最低价格和册数。 16) 分别找出各单位当前借阅图书的读者人数。 17) 找出当前至少借阅了2本图书的读者及所在单位。 18) 分别找出借书人次超过1人次的单位及人次数。 19) 找出藏书中各个出版单位的册数、价值总额。 20) 查询经济系是否还清所有图书。如果还清,显示该系所有读者的姓名、所在单位和职称 总编号 445501 332211 445503 112266 665544 114455 118801 446603 449901 449902 118801 借书日期 1997-3-19 1997-2-12 1997-8-21 1997-3-14 1997-10-21 1997-11-2 1997-10-18 1997-12-12 1997-10-23 1997-8-21 1997-9-10

Sql 语句答案:

1. select 姓名,单位

from 读者

where 姓名like '李%'

2. select 书名,出版单位

from 图书

3. select 出版单位,书名,单价

from 图书

where 出版单位='高等教育出版社' order by 单价desc

4. select 书名,出版单位,单价 from 图书

where 单价between 10.00 and 20.00 order by 出版单位,单价asc

5. select 书名,作者

from 图书

where 书名like '计算机%'

6. select 借阅.总编号,借书证号 from 图书,借阅

where 图书.总编号=借阅.总编号and 借阅.总编号in ('112266','449901')

7.select distinct 姓名,单位 from 读者inner join 借阅 on 借阅.借书证号=读者.借书证号

8. select 书名,姓名,借书日期

from 图书inner join 借阅 on 图书.总编号=借阅.总编号 join 读者

on 借阅.借书证号=读者.借书证号 where 读者.姓名like '李%'

9. select distinct 读者.借书证号,姓名,单位 from 借阅inner join 读者 on 借阅.借书证号=读者.借书证号 where 借阅.借书日期>='1997-10-1'

10. select 借书证号

from 借阅

where 总编号in (select 总编号 from 图书

where 书名='FoxPro大全')

11. select 姓名,单位,借书日期

from 借阅,读者

where 借阅.借书证号=读者.借书证号and 借书日期=(select 借书日期 from 借阅,读者

where 借阅.借书证号=读者.借书证号and 姓名='赵正义') 12. select distinct 借书证号,姓名,单位 from 读者

where 借书证号not in (select 借书证号 from 借阅

where 借书日期>='1997-07-01' )

13. select max(单价) 最高单价,min(单价) as 最低单价,avg(单价) as 平均单价

from 图书

where 出版单位='科学出版社'

14. select count(借书证号)

from 借阅

where 借书证号in (select 借书证号 from 读者

where 单位='信息系')

15. select 出版单位,max(单价) 最高价格,min(单价) as 最低价格,count(*) 册数

from 图书

group by 出版单位

16. select 单位,count(借阅.借书证号)

from 借阅,读者

where 借阅.借书证号in (select 借书证号 from 读者) group by 单位

17. select 姓名,单位 from 读者

where 借书证号in (select 借书证号 from 借阅

group by 借书证号

having count(*)>=2)

18. select 单位,count(*) as 超过人次 from 借阅,读者

where 读者.借书证号=借阅.借书证号 group by 单位

having count(*)>=2

19. select 出版单位,count(*) 册数,sum(单价) 总价

from 图书

group by 出版单位

20. select 姓名,单位,职称 from 读者

where 单位='经济系' and not exists (select * from 读者,借阅

where 读者.借书证号=借阅.借书证号and 单位='经济系')

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