数据库基础与应用期末重点复习题(2)

2019-04-02 12:25

二、根据主教材第四章所给的商品库和教学库,按照下列所给的每条SQL查询语句写出相应的功能。

在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为: 商品表1( 商品代号 char(8),分类名 char(8),单价 float ,数量 int ) 商品表2( 商品代号 char(8),产地 char(8),品牌 char(6))

在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为: 学生( 学生号 char(7),姓名char(6),性别char(2),出生日期 datetime,专

业char(10),年级int)

课程( 课程号 char(4),课程名char(10),课程学分 int) 选课( 学生号 char(7),课程号char(4),成绩 int) 1. select x..商品代号,分类名,数量,品牌 (09年1月考) from 商品表1 x ,商品表2 y where x.商品代号 = y.商品代号

从商品库中查询出每一种商品的商品代号、分类名、数量和品牌等信息 2. select distinct 产地 from 商品表2

从商品库中查询出所有商品的不同产地 3. select distinct 品牌(07年7月考) from 商品表2

从商品库中查询出所有商品的不同品牌

4. select count (distinct 产地) as 产地数 (08年7月考) from 商品表2

从商品库中查询出所有商品的不同产地的总数 5. select x..商品代号,分类名,数量,品牌 from 商品表1 x ,商品表2 y

where x.商品代号 = y.商品代号 and ( 品牌 =‘熊猫’or 品牌 =‘春兰’) 从商品库中查询出品牌为熊猫或春兰的所有商品的商品代号、分类名、产地和品牌 6. select 学生.学生号, count (* ) as 选课门数 (08年1月考、09.7考) from 学生,选课

where 学生.学生号=选课.学生号 group by 学生.学生号

从教学库中查询出每个学生选课的门数 7. select distinct x..*

from 学生 x, 选课 y, 选课 z

6

where y.学生号=z.学生号 and y.课程号<>z.课程号 and x..学生号=y.学生号 从教学库中查询出至少选修了两门课程的全部学生

8. select * (09年1月考) from 学生

where 学生号 in (select 学生号

from 选课

group by 学生号 having count(*)=1 )

从教学库中查询出只选修了一门课程的全部学生

9. select x.学生号, y.学生号, y.课程号(07年7月考)(09年1月考) from 选课 x, 选课 y

where x..学生号=@s1 and y.学生号=@s2

and x.课程号=y.课程号

从教学库中查询出学生号为@ s1的学生和学生号为@ s2的学生选修的共同课程的课程号 10. select x.*

from 课程 x,选课 y

where x .课程号= y .课程号 and y .学生号=@ s1

and y .课程号 not in (select 课程号 from 选课 where 选课.学生号= @ s2)

从教学库中查询出学生号为@ s1的学生所选修、而学生号为@ s2的学生没有选修的课程 11. select * from 课程

where not exists (select * from 选课 where 课程.课程号=选课.课程号 ) 从教学库中查询出所有未被学生选修的课程 12. select * (08年7月考) from 课程

where exists (select * from 选课 where 课程.课程号=选课.课程号 ) 从教学库中查询出所有已被学生选修的课程 13. select * (08年1月考) from 学生

where exists (select * from 选课

where 学生.学生号=选课.学生号

group by 选课.学生号 having count(*)=3

)

从教学库中查询出同时选修了3门课程的全部学生 14. select *

7

from 学生

where 学生号 in (select 学生号 from 选课

group by 学生号 having count(*)<=2

)

or not exists (select * from 选课

where 学生.学生号=选课.学生号 )

从教学库中查询出最多选修了2门课程(含未选任何课程)的全部学生 15. select 专业 ,count(*)as 专业人数 (08年7月考)(07年7月考) from 学生 group by 专业

order by 专业人数 desc

从教学库中查询出每个专业的学生人数,并按人数多少降序排列 16. select 专业 ,性别 ,count(*)as 人数 from 学生

group by 专业 ,性别 order by 专业

从教学库中查询出每个专业每种性别的学生人数,并按专业升序排列 17. select x.*,课程名,课程学分,成绩 09.7考 from 学生 x,课程 y,选课 z

where x..学生号= z.学生号 and y.课程号= z.课程号 order by x .学生号,z .成绩

从教学库中查询出每个学生选课的全部情况,并依次按学生号和成绩排序 18. select * from 学生

where not exists (select y.课程号

from 学生 x inner join 选课 y on x.学生号=y.学生号 where x.姓名=@a and not exists (select *

from 选课

where 学生.学生号=选课.学生号 and y.课程号=选课.课程号)

)

从教学库中查询出选修了姓名为@ a 的学生的全部选课的所有学生

8

三、根据教材第四章所给的商品库和教学库,按照下列所给的每种功能写出相应的查询语句。

在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为: 商品表1( 商品代号 char(8),分类名 char(8),单价 float ,数量 int ) 商品表2( 商品代号 char(8),产地 char(8),品牌 char(6))

在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为: 学生( 学生号 char(7),姓名char(6),性别char(2),出生日期 datetime,专

业char(10),年级int)

课程( 课程号 char(4),课程名char(10),课程学分 int) 选课( 学生号 char(7),课程号char(4),成绩 int)

1. 从商品库中查询出每种商品的商品代号、单价、数量和产地。 select 商品表1..商品代号,单价,数量,产地 from 商品表1 ,商品表2

where 商品表1.商品代号 = 商品表2.商品代号

2. 从商品库中查询出数量大于10的商品种数。(08、09年1月考) select count(*)as 商品种数 from 商品表1 where 数量>10

3. 从商品库中查询出数量在10和20之间的所有商品。 select * from 商品表1

where 数量〉=10 and 数量<=20

4. 从商品库中查询出每类(即分类名相同)商品的最高单价。(07年7月考) select 分类名,max(单价) as 最高单价 from 商品表1 group by 分类名

5. 从商品库中查询出每类(即分类名相同)商品的平均数量。(08年7月考) select 分类名,avg(数量) as 平均数量 from 商品表1 group by 分类名

6. 从商品库中查询出每类(即分类名相同)商品的总数量。

9

select 分类名,sum(数量) as 总数量 from 商品表1 group by 分类名

7. 从商品库中查询出比所有电视机的单价都高的每种商品。 select * from 商品表1

where 单价> all (select 单价 from 商品表1

where分类名= ”电视机” )

8. 从商品库中查询出比所有商品单价的平均值要高的全部商品。(09年1月考) select * from 商品表1

where 单价> all (select avg (单价) from 商品表1 ) 9. 从商品库中查询出数量最多的一种商品。(09年7月考) select * from 商品表1

where 数量= some (select max (数量) from 商品表1 )

10. 从商品库中查询出同一类商品多于一种的所有分类名。(07年7月考) select distinct 分类名 from 商品表1

group by 分类名 having count(*)>1

11. 从商品库中查询出同一产地的商品只有一种的所有商品。 select 商品表1.* ,产地 from 商品表1 , 商品表2

where 商品表1.商品代号=商品表2.商品代号 and 产地in (select 产地 from 商品表1 X , 商品表2 Y where X..商品代号=y. 商品代号 group by 产地 having count(*)=1 ) 12. 从商品库中查询出每种商品的总价值,并按降序排列出来。 select *, 单价*数量 as 总价值 from 商品表1 order by 总价值 desc

13. 从教学库中查询出至少选修了姓名为@ m1学生所选课程中一门课的全部学生号。 select distinct 学生.* from 学生, 选课

where 学生.学号=选课.学号 and 课程号= any (select 课程号

from 学生,选课

where 学生.学生号=选课.学生号 and 姓名=@m1 )

14. 从教学库中查询出每门课程被选修的学生人数,并按所选人数的升序排列出课程号、课

10


数据库基础与应用期末重点复习题(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017学年最新人教版三年级数学上册教案设计[1]

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: