数据库 习题及答案 联系客服

发布时间 : 星期六 文章数据库 习题及答案更新完毕开始阅读

where A.先修课=B.课程号 and B.先修课 is null

题46 列出所有学生的成绩,要求输出学号、姓名、课程号、课程名、成绩 select 学生表.学号,姓名,课程表.课程号,课程名,成绩 from 学生表,课程表,成绩表

where 学生表.学号=成绩表.学号 and 成绩表.课程号=课程表.课程号

题47 列出选修了“C801”课程并且成绩在90分以上学生的学号、姓名、所在院和班级名 select 学生表.学号,姓名,所在院系,班级名 from 学生表,成绩表

where 学生表.学号=成绩表.学号 and 课程号='C801' and 成绩>90

题48 查询某一学生所在班级的所有学生名单(任意指定一个学生名) select *

from 学生表

where 班级名 in (select 班级名 from 学生表 where 姓名='李涛')

题49 列出“肖竹一”同学同在一个院系并且同一入学年份的学生名单(姓名唯一) select *

from 学生表

where 所在院系 =(select 所在院系 from 学生表 where 姓名='肖竹一') and year(入学年份)=(select year(入学年份) from 学生表 where 姓名='肖竹一')

题50 列出选修了“高等数学”的学生的学号;姓名和所在院系(课程名不唯一) select 学号,姓名,所在院系 from 学生表

where 学号 in (select 学号 from 成绩表 where 课程号 in (select 课程号 from 课程表 where 课程名='高等数学')) 题51 列出选修‘C803’最高成绩的学生学号,课程号,成绩 select 学号,课程号,成绩 from 成绩表

where 课程号='C803'and 成绩=(select max(成绩) from 成绩表 where 课程号='C803')

题52 列出所有院系中比计算机系最小年龄大的学生清单 (不含计算机系学生) select *

from 学生表

where 年龄>(select min(年龄)

from 学生表 where 所在院系='计算机') and not 所在院系 = '计算机'

题53 列出所有院系中比计算机系最大年龄大的学生清单. (不含计算机系学生) select *

from 学生表

where 年龄>(select max(年龄) from 学生表 where 所在院系='计算机')

题54 学号是“200206002”学生, 查询同班同学大于该学生最低成绩的学生,列出学号,姓名,课程号,成绩。

select 学生表.学号,课程号,成绩 from 学生表,成绩表

where 学生表.学号 = 成绩表.学号 and 班级名=(select 班级名 from 学生表 where 学号='200206002') and 成绩>(select min(成绩) from 成绩表 where 学号='200206002') and 学生表.学号!='200206002'

题55 学号是“200206002”学生, 查询同系同学大于该学生最高成绩的学生,列出学号,姓名,课程号,成绩。

select 学生表.学号,课程号,成绩 from 成绩表,学生表

where 学生表.学号=成绩表.学号 and 所在院系=(select 所在院系 from 学生表 where 学号='200206002') and 成绩>(select max(成绩) from 成绩表 where 学号='200206002') 题56 列出没有参加任何选修课的学生清单 select *

from 学生表

where not exists(select * from 成绩表 where 学号=学生表.学号)

题57 列出所没有选修了课程 ’C801’的学生清单 select *

from 学生表

where not exists(select * from 成绩表

where 学号=学生表.学号 and 课程号='C801') 题58 列出年龄最大的学生名单 select *

from 学生表

where 年龄=(select max(年龄) from 学生表)

题59 按顺序显示年龄超过平均年龄的学生名单 select *

from 学生表

where 年龄>(select avg(年龄) from 学生表) order by 年龄

题60 显示计算机系学生或选修‘C803’的学生名单 select *

from 学生表

where 所在院系='计算机' union select *

from 学生表

where exists(select * from 成绩表 where 学号=学生表.学号 and 课程号='C803') 题 61 统计有多少专业基础课 select count(*) '专业基础课数' from 课程表 A,课程表 B

where A.先修课=B.课程号 and B.先修课 is null

题 62 查询选修了全部课程的学生学号,姓名和班级名 select 学号,姓名,班级名 from 学生表

where 学号 in (select 学号 from 成绩表 group by 学号 having count(*)=(select count(*) from 课程表)) 题 63 查询没有任何学生选修的课程号和课程名 select 课程号,课程名 from 课程表

where not exists(select * from 成绩表 where 课程表.课程号=课程号)

题 64 查询每一年份出生的学生数,要求输出出生年份,人数 select year(入学年份)-年龄 '出生年份',count(*) '人数' from 学生表

group by year(入学年份)-年龄

题 65 查询每个教师所教的课程和学生,要求输出教师名,课程号, 学号,姓名 select 教师名,授课表.课程号, 学生表.学号,姓名 from 学生表,授课表,成绩表

where 授课表.课程号=成绩表.课程号 and 授课表.班级名=学生表.班级名 and 学生表.学号=成绩表.学号

题 66 查询每个教师教授每门课程的学生数,要求输出教师名,课程号, 学生数 select 教师名,授课表.课程号,count(*) '学生数' from 学生表,授课表,成绩表

where 授课表.课程号=成绩表.课程号 and 授课表.班级名=学生表.班级名 and 学生表.学号=成绩表.学号 group by 教师名,授课表.课程号

题 67 查询每个教师教的学生数,要求输出教师名,学生数 select 教师名,count(distinct 学生表.学号 ) '学生数' from 学生表,授课表,成绩表

where 授课表.课程号=成绩表.课程号 and 授课表.班级名=学生表.班级名 and 学生表.学号=成绩表.学号 group by 教师名

题 68 创建包含计算机系学生的查询文件, 查询文件文件名自定义. 建立后查看一下该文件.

select * into st_c

from 学生表

where 所在院系='计算机'

题 69 创建包含计算机系和国际贸易系学生的查询文件,查询文件文件名自定义. 建立后查看一下该文件. select * into st_ci from 学生表

where 所在院系 in('计算机','国际贸易')

题 70 查询即选修了C801也C802课程的学号 select 学号 into st801 from 成绩表

where 课程号 ='C801'

select 学号 into st802 from 成绩表

where 课程号 ='C802'

select st801.学号

from st801,st802

where st801.学号=st802.学号

题 71 查询即选修了C801也C802课程的学号,姓名和班级名 select 学号,姓名,班级名 from 学生表

where exists(select * from 成绩表 where 学号=学生表.学号 and 课程号 ='C801') and exists(select * from 成绩表 where 学号=学生表.学号 and 课程号 ='C802') 题 72 查询教软件1班也教软件2班的教师,要求输出教师名 select distinct 教师名 from 授课表 A where exists(select * from 授课表 where 教师名=A.教师名 AND 班级名='软件1班') and exists(select * from 授课表 where 教师名=A.教师名 AND 班级名='软件2班') 题 73 查询软件2班所学习过的课程 select 课程号,课程名 from 课程表

where 课程号 in(select 课程号 from 成绩表 where 学号 in(select 学号 from 学生表 where 班级名='软件2班')) 题 74 查有学生选修的课程号和课程名 select 课程号,课程名 from 课程表

where 课程号 in(select 课程号 from 成绩表)

题 75 查询姓名相同的学生名要求输出姓名和重名人数 select 姓名,count(*) '重名人数' from 学生表 group by 姓名 having count(*)>1