数据库sql查询语句练习4习题结果单世民图书习题Word文件下载.docx
《数据库sql查询语句练习4习题结果单世民图书习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库sql查询语句练习4习题结果单世民图书习题Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
TS7/21
高等数学
刘明
114455
TR9/12
线性代数
孙业
北京大学出版社
113388
TR7/90
大学英语
胡玲
清华大学出版社
446601
TP4/13
数据库基础
马凌云
人民邮电出版社
446602
446603
449901
TP4/14
FoxPro大全
周虹
449902
118801
TP4/15
计算机网络
黄力钧
118802
读者:
借书证号
单位
姓名
性别
职称
地址
111
信息系
王维利
女
教授
1号楼424
112
财会系
李立
男
副教授
2号楼316
113
经济系
张三
讲师
3号楼105
114
周华发
1号楼316
115
赵正义
工程师
1号楼224
116
李明
1号楼318
117
计算机系
李小峰
助教
1号楼214
118
许鹏飞
助工
1号楼216
119
刘大龙
120
国际贸易
李雪
4号楼506
121
李爽
4号楼510
122
王纯
4号楼512
123
沈小霞
2号楼202
124
朱海
2号楼210
125
马英明
2号楼212
借阅:
借书日期
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-9-10
根据以上描述,请完成:
DDL
1.写出创建上述表的语句
命令:
createtable图书(总编号varchar(7)primarykey,分类号varchar(8),书名varchar(18),作者varchar(8),出版单位varchar(18),单价float)
createtable读者(借书证号varchar(4)primarykey,单位varchar(7),姓名varchar(8),性别varchar
(2),职称varchar(8),地址varchar(18))
createtable借阅(借书证号varchar(3),总编号varchar(6),借书日期date,primarykey(借书证号,总编号,借书日期))
DML
2.给出插入上述数据的insert语句
insertinto图书values('
445501'
'
TP3/12'
数据库导论'
王强'
科学出版社'
445502'
445503'
332211'
TP5/10'
计算机基础'
李伟'
高等教育出版社'
112266'
FoxBASE'
张三'
电子工业出版社'
665544'
TS7/21'
高等数学'
刘明'
114455'
TR9/12'
线性代数'
孙业'
北京大学出版社'
113388'
TR7/90'
大学英语'
胡玲'
清华大学出版社'
446601'
TP4/13'
数据库基础'
马凌云'
人民邮电出版社'
446602'
446603'
449901'
TP4/14'
FoxPro大全'
周虹'
449902'
118801'
TP4/15'
计算机网络'
黄力钧'
118802'
insertinto读者values('
111'
信息系'
王维利'
女'
教授'
1号楼'
)
112'
财会系'
李立'
男'
副教授'
2号楼'
113'
经济系'
讲师'
3号楼'
114'
周华发'
115'
赵正义'
工程师'
116'
李明'
117'
计算机系'
李小峰'
助教'
118'
许鹏飞'
119'
刘大龙'
4号楼'
120'
国际贸易'
李雪'
121'
李爽'
122'
王纯'
123'
沈小霞'
124'
朱海'
125'
马英明'
insertinto借阅values('
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-9-10'
单表查询
3.找出姓李的读者姓名和所在单位
select姓名,单位from读者where姓名like'
李%'
结果:
4.列出图书库中所有藏书的书名以及出版单位
selectdistinct书名,出版单位from图书
5.查找出高等教育出版社的所有图书及单价,结果按单价降序排列
selectdistinct书名,单价from图书where出版单位='
orderby单价desc
6.查找出价格位于10元和20元之间的图书种类,结果按出版单位和单价升序排序
select*from图书where单价between10and20orderby出版单位,单价
7.找出书名以“计算机”打头的所有图书和作者
selectdistinct书名,作者from图书where书名like'
计算机%'
8.检索同时接借阅了总编号为112266和449901两本书的借书证号
select借书证号from借阅where总编号='
intersectselect借书证号from借阅where总编号='
9.求科学出版社图书的最高单价、最低单价和平均单价
selectMAX(单价)最高单价,MIN(单价)最低单价,AVG(单价)平均单价from图书where出版单位='
聚合查询
10.找出藏书中各个出版社的册数、价值总额
select出版单位,COUNT(*)册数,SUM(单价)价值总额from图书groupby出版单位
11.求出各个出版社图书的最高价格、最低价格和册数
select出版单位,COUNT(*)册数,max(单价)最高价格,MIN(单价)最低价格from图书groupby出版单位
多表查询
12.查找所有借了书的读者的姓名以及所在单位
selectdistinct姓名,单位from读者join借阅on读者.借书证号=借阅.借书证号
13.找出李某所借图书的所有图书的书名及借书日期
select姓名,书名,借书日期from读者join借阅on读者.借书证号=借阅.借书证号join图书on借阅.总编号=图书.总编号where姓名like'
14.查询1997年10月以后借书的读者借书证号、姓名和单位
selectdistinct读者.借书证号,姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号whereDATEDIFF(MONTH,'
1977-10-1'
借书日期)>
=0
15.找出借阅了FoxPro大全一书的借书证号
select借书证号from借阅join图书on借阅.总编号=图书.总编号where书名='
16.分别找出借书人次超过1人次的单位及人次数
select单位,COUNT(*)人次数from借阅join读者on借阅.借书证号=读者.借书证号groupby单位havingCOUNT(*)>
1
子查询
17.找出与赵正义在同一天借书的读者姓名、所在单位以及借书日期
select姓名,单位,借书日期from读者join借阅on读者.借书证号=借阅.借书证号where借书日期=(select借书日期from借阅join读者on借阅.借书证号=读者.借书证号where姓名='
18.查询1997年7月以后没有借书的读者借书证号、姓名以及单位
select借书证号,姓名,单位from读者exceptselect借阅.借书证号,姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号whereDATEDIFF(DAY,'
1997-7-1'
19.求信息系当前借阅图书的读者人次数
selectCOUNT(*)人次数from借阅join读者on借阅.借书证号=读者.借书证号where单位='
20.找出当前至少借阅了2本书的读者及所在单位
select姓名,单位from借阅join读者on借阅.借书证号=读者.借书证号groupby读者.姓名,单位havingCOUNT(*)>
=2
21.查询经济系是否还清所有图书。
如果还清,则显示该系统所有读者的姓名、所在单位和职称
select姓名,单位,职称from读者wherenotexists(select姓名from借阅join读者on借阅.借书证号=读者.借书证号where单位='
)and单位='