SQL练习题2
- 格式:docx
- 大小:20.50 KB
- 文档页数:3
1 / 3
设计题
设有学生选修课程数据库,
学生表(学号,姓名,年龄,性别,所在系,地址,出生日期)
选课表(学号,课程号,成绩)
课程表(课程号,课程名称,教师姓名)
用SQL语言查询下列问题:
1)xx所教的课程号、课程名称。
2)年龄大于23岁的女学生的学号和姓名。
3)“xx”所选修的全部课程名称。
4)所有成绩都在80分以上的学生姓名及所在系。
5)没有选修“操作系统”课的学生姓名。
6)至少选修两门以上课程的学生姓名、性别。
7)选修了xx所讲课程的学生人数。
8)没有选修xx所讲课程的学生。
9)“操作系统”课程得最高分的学生姓名、性别、所在系。设计题
1)
select 课程号,课程名称
from 课程表
where 教师姓名='xx'
2)
select 学号,姓名from 学生表
2 / 3
where (性别='女') and (年龄>23)
3)
select 课程名称from 课程表
where 课程号in
(select选课表.课程号from 选课表,学生表
where (选课表.学号=学生表.学号) and (学生表.姓名='李小波'))
4)
select 姓名,所在系from 学生表where 学号in
(select distinct学号from 选课表where 成绩>= 80)
5)没有选修“操作系统”课的学生姓名。
select distinct 学生表.学号,姓名
from 学生表,选课表,课程表
where (选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号)
and (课程名称<>'操作系统')
6)至少选修两门以上课程的学生姓名、性别。
select [姓名], [性别] from [学生表]
where [学号] in
(SELECT [学号] FROM [选课表]
group by [学号] having count([学号])>1)
7)选修了xx所讲课程的学生人数。
select count(学号)
3 / 3
from 选课表,课程表
where (选课表.课程号=课程表.课程号) and (教师姓名='李老师')
8)没有选修xx所讲课程的学生,
select distinct 学生表.学号,学生表.姓名
from 学生表,选课表,课程表
where (选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号)
and (教师姓名<>'xx')
9)“操作系统”课程得最高分的学生姓名、性别、所在系。
select top 1学生表.学号,姓名,所在系
from 学生表,选课表,课程表
where (选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号)
and (课程名称= '操作系统')
order by 成绩desc