数据库系统概论SQL上机练习题 解答

数据库系统概论SQL上机练习题
 
练习题 1
现有图书管理数据库的三个关系模式:
图书(总编号,分类号,书名,作者,出版单位,单价)
读者 (借书证号,单位,姓名,性别,职称,地址)
借阅 (借书证号,总编号,借书日期)
1.   利用 SQL Server 2000 创建图书管理库和图书、读者和借阅三个基本表的表结构:
2.   利用 SQL Server 2000 在三个表中分别插入以下所给元组:
图书
总编号
分类号
书名
作者
出版单位
单价
445501
TP3/12
数据库导论
王强
科学出版社
17.90
445502
TP3/12
数据库导论
王强
科学出版社
17.90
445503
TP3/12
数据库导论
王强
科学出版社
17.90
332211
TP5/10
计算机基础
李伟
高等教育出版社
18.00
112266
TP3/12
FoxBASE
张三
电子工业出版社
23.60
665544
TS7/21
高等数学
刘明
高等教育出版社
20.00
114455
TR9/12
线性代数
孙业
北京大学出版社
20.80
113388
TR7/90
大学英语
胡玲
清华大学出版社
12.50
446601
TP4/13
数据库基础
马凌云
人民邮电出版社
22.50
446602
TP4/13
数据库基础
马凌云
人民邮电出版社
22.50
446603
TP4/13
数据库基础
马凌云
人民邮电出版社
22.50
449901
TP4/14
FoxPro 大全
周虹
科学出版社
32.70
449902
TP4/14
FoxPro 大全
周虹
科学出版社
32.70
118801
TP4/15
计算机网络
黄力钧
高等教育出版社
21.80
118802
TP4/15
计算机网络
黄力钧
高等教育出版社
21.80
 
读者:
借书证号
单位
姓名
性别
职称
地址
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
计算机系
刘大龙
教授
1 号楼 318
120
国际贸易
 
副教授
4 号楼 506
121
国际贸易
 
讲师
4 号楼 510
122
国际贸易
 
讲师
4 号楼 512
123
财会系
沈小霞
助教
2 号楼 202
124
财会系
 
讲师
2 号楼 210
125
财会系
马英明
副教授
2 号楼 212
 
借阅:
借书证号
总编号
借书日期
112
445501
1997-3-19
125
332211
1997-2-12
111
445503
1997-8-21
112
112266
1997-3-14
114
665544
1997-10-21
120
114455
1997-11-2
120
118801
1997-10-18
119
446603
1997-12-12
112
449901
1997-10-23
115
449902
1997-8-21
118
118801
1997-9-10
 
练习题2
学会利用导入的方法创建上面的数据库并用SQL完成如下查询:
1)        找出姓李的读者姓名和所在单位。
2)        列出图书库中所有藏书的书名及出版单位。
3)        查找高等教育出版社的 所有图书及单价,结果按单价降序排序。
4)      查找价格介于10元和20元之间的图书种类,结果按出版单位和单价升序排序。
5)        查找书名以计算机打头的所有图书和作者。
6)        检索同时借阅了总编号为112266449901两本书的借书证号。
7)        查找所有借了书的读者的姓名及所在单位。
8)        找出李某所借图书的所有图书的书名及借书日期。
9)        查询199710月以后借书的读者借书证号、姓名和单位。
10)     找出借阅了FoxPro大全一书的借书证号。
11)     找出与赵正义在同一天借书的读者姓名、所在单位及借书日期 。
12)     查询19977月以后没有借书的读者借书证号、姓名及单位。
练习题3
学会利用导出的方法创建图书管理数据库并完成下面SQL高级查询:
13)     求科学出版社图书的最高单价、最低单价、平均单价。
14)     求信息系当前借阅图书的读者人次数。
15)     求出各个出版社图书的最高价格、最低价格和册数。
16)     分别找出各单位当前借阅图书的读者人数。
17)     找出当前至少借阅了2本图书的读者及所在单位。
18)     分别找出借书人次超过1人次的单位及人次数。
19)      找出藏书中各个出版单位的册数、价值总额。
20)      查询经济系是否还清所有图书。如果还清,显示该系所有读者的姓名、所在单位和职称。
1 select 单位 , 姓名
from 读者
where 姓名 like ' %'
2 select distinct 书名 , 出版单位
from 图书
3 select distinct *
from 图书
where 出版单位 =' 高等教育出版社 '
order by 单价 desc
4 select  *
from 图书
where 单价 between 10.00 and 20.00
order by 出版单位 , 单价
5 select  distinct 书名 , 作者
from 图书
where 书名 like ' 计算机 %'
6 select jy1. 借书证号
from 借阅 jy1, 借阅 jy2
where jy1. 总编号 ='112266' and jy2. 总编号 ='449901' and jy1. 借书证号 =jy2. 借书证号
7 select distinct 姓名 , 单位
from 读者 , 借阅
where 读者 . 借书证号 = 借阅 . 借书证号
8 select 书名 , 姓名 , 借书日期
from 借阅 , 图书 , 读者
where 借阅 . 借书证号 = 读者 . 借书证号 and 图书 . 总编号 = 借阅 . 总编号 and 读者 . 姓名 like ' %'
9 select distinct 读者 . 借书证号 , 姓名 , 单位
from 借阅 , 读者
where 借阅 . 借书证号 = 读者 . 借书证号 and 借阅 . 借书日期 >= 1997-10-1
10 select distinct 借阅 . 借书证号
from 借阅 , 图书
where 借阅 . 总编号 = 图书 . 总编号 and 图书 . 书名 like 'FoxPro 大全 '
11 SELECT 姓名,单位,借阅日期
FROM 读者,借阅
WHERE 借阅 . 借书证号=读者 . 借书证号 AND 借阅日期 IN
SELECT 借书日期
FROM 借阅,读者
WHERE  借阅 . 借书证号 = 读者 . 借书证号 AND 姓名= 李欣
 
12 select 借书证号 , 姓名 , 单位 ;
   from 读者 ;
   where 借书证号 not in;
         (select 借书证 ;
          from 借阅 ;
          where 借书日期 >={ 07/01/97 })
 
13 select 出版单位 ,MAX( 单价 ) as 最高价 ,MIN( 单价 )as 最低 ; ,AVG ( 单价 )as 平均价 ;
From 图书 ;
Where 出版单位 =“ 科学出版社
14 SELECT “ 计算机科学系借书人数: COUNT DISTINCT 借书证号)
FROM 借阅
WHERE 借书证号   IN
SELECT  借书证号
FROM  读者
WHERE 单位= 计算机科学系
15 SELECT 出版单位, MAX (单价), MIN (单价), AVG (单价)
FROM 图书
GROUP BY 出版单位
17 SELECT 姓名,单位
FROM 读者
WHERE 借书证号 IN
SELECT 借书证号
FROM  借阅
GROUP BY  借书证号
HAVING COUNT * >=5
 
18 Select 单位 ,count(*) as 超过 1 人次 ;
From 借阅 , 读者
Where 读者 . 借书证号 = 借阅 . 借书证号 ;
Group by 单位
Having count(*)>=2
19 SELECT 出版单位, 册数: COUNT * ), 总价: SUM (单价)
FROM 图书
GROUP BY 出版单位
ORDER BY SUM( 单价 ) COUNT(*) DESC
 
20 Select 姓名 , 单位 , 职称 ;
From 读者 ;
Where 单位 =“ 经济系 ” and not exists
       (select *;
        from 读者 , 借阅 ;
        where 读者 . 借书证号 = 借阅 . 借书证号 and 单位 =“ 经济系

你可能感兴趣的:(数据库,管理,图书,休闲)