设为首页 加入收藏

TOP

一套Oracle SQL练习题及答案(二)
2014-11-24 08:06:47 来源: 作者: 【 】 浏览:7
Tags:一套 Oracle SQL 习题 答案

33、查询不及格的课程,并按课程号从大到小排列
34、查询课程编号为c001 且课程成绩在80 分以上的学生的学号和姓名;
35、求选了课程的学生人数
36、查询选修“谌燕”老师所授课程的学生中,成绩最高的学生姓名及其成绩
37、查询各个课程及相应的选修人数
38、查询不同课程成绩相同的学生的学号、课程号、学生成绩
39、查询每门功课成绩最好的前两名
40、统计每门课程的学生选修人数(超过10 人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
41、检索至少选修两门课程的学生学号
42、查询全部学生都选修的课程的课程号和课程名
43、查询没学过“谌燕”老师讲授的任一门课程的学生姓名
44、查询两门以上不及格课程的同学的学号及其平均成绩
45、检索“c004”课程分数小于60,按分数降序排列的同学学号
46、删除“s002”同学的“c001”课程的成绩



答案:

1.
*********************************
select a.* from
(select * from sc a where a.cno='c001') a,
(select * from sc b where b.cno='c002') b
where a.sno=b.sno and a.score > b.score;
*********************************
select * from sc a
where a.cno='c001'
and exists(select * from sc b where b.cno='c002' and a.score>b.score
and a.sno = b.sno)
*********************************
2.
*********************************
select sno,avg(score) from sc group by sno having avg(score)>60;
*********************************
3.
*********************************
select a.*,s.sname from (select sno,sum(score),count(cno) from sc group by sno) a ,student s where a.sno=s.sno
*********************************
4.
*********************************
select count(*) from teacher where tname like '刘%';
*********************************
5.
*********************************
select a.sno,a.sname from student a
where a.sno
not in
(select distinct s.sno
from sc s,
(select c.*
from course c ,
(select tno
from teacher t
where tname='谌燕')t
where c.tno=t.tno) b
where s.cno = b.cno )
*********************************
select * from student st where st.sno not in
(select distinct sno from sc s join course c on s.cno=c.cno
join teacher t on c.tno=t.tno where tname='谌燕')
*********************************
6.
*********************************
select st.* from sc a
join sc b on a.sno=b.sno
join student st
on st.sno=a.sno
where a.cno='c001' and b.cno='c002' and st.sno=a.sno;
*********************************
7.
*********************************
select st.* from student st join sc s on st.sno=s.sno
join course c on s.cno=c.cno
join teacher t on c.tno=t.tno
where t.tname='谌燕'
*********************************
8.
*********************************
select * from student st
join sc a on st.sno=a.sno
join sc b on st.sno=b.sno
where a.cno='c002' and b.cno='c001' and a.score < b.score
*********************************
9.
*********************************
select st.*,s.score from student st
join sc s on st.sno=s.sno
join course c on s.cno=c.cno
where s.score <60
*********************************
10.
*********************************
select stu.sno,stu.sname,count(sc.cno) from student stu
left join sc on stu.sno=sc.sno
group by stu.sno,stu.sname
having count(sc.cno)<(select count(distinct cno)from course)
===================================
select * from student where sno in
(select sno from
(select stu.sno,c.cno from student stu
cross join course c
minus
select sno,cno from sc)
)
===================================
*********************************
11.
*********************************
select st.* from student st,
(select distinct a.sno from
(select * from sc) a,
(select * from sc where sc.sno='s001') b
where a.cno=b.cno) h
where st.sno=h.sno and st.sno<>'s001'
*********************************
12.
****
首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux配置unixODBC访问Oracle说明 下一篇oracle read rewrite 功能概述

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)