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