SQL:
Student(S#,Sname,Sage,Ssex)学生表
Course(C#,Cname,T#)课程表
SC(S#,C#,Score)成绩表:
Teacher(T#,Tname)教师表
问题:
1,查询平均成绩大于60分的同学的学号和平均成绩;
2.查询所有同学的学号、姓名、选课数、总成绩;
3.查询姓李的老师的个数
4.查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;
5、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;
6、删除学习“叶平”老师课的SC表记录。
Student(S#,Sname,Sage,Ssex)学生表
Course(C#,Cname,T#)课程表
SC(S#,C#,Score)成绩表:
Teacher(T#,Tname)教师表
问题:
1,查询平均成绩大于60分的同学的学号和平均成绩;
2.查询所有同学的学号、姓名、选课数、总成绩;
3.查询姓李的老师的个数
4.查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;
5、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;
6、删除学习“叶平”老师课的SC表记录。
解决方案 »
- 达人们,帮我优化一下语句,能不能3分钟查出结果,不胜感激!!
- oracle存储过程编译总是出错,求帮忙看一下
- 无法在指定的范围内为以下进程分配端口
- loader向中文oracle中导入英文表示的时间戳数据的问题
- view 可以update 么?
- 新手求救,急救
- oracle9i如何创建数据库?
- 超级菜的问题,,,在oracle中用apps用户登录pl/sql developer 的问题
- 关于监听器的问题,急在线等待!
- kettle连接资源库报错
- server2008 R2 虚拟机问题
- 急,急,急,急,利用储存过程把test表和text2表中的testsum数据相加,条件是两个表的testName和testBraId要一致的时候才相加.
Course(C#,Cname,T#)课程表
SC(S#,C#,Score)成绩表:
Teacher(T#,Tname)教师表
问题:
1,查询平均成绩大于60分的同学的学号和平均成绩;
select s#,avg(score) from SC group by S# having avg(score)>60;
2.查询所有同学的学号、姓名、选课数、总成绩;
select a.s#,a.Sname,b.count(c#),b.count(score) from students a ,(select s#,count(c#),count(score) group by s# from sc)b where a.s#=b.s#;
3.查询姓李的老师的个数
select count(*) from teacher where Tname like '李%';
4.查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;
select s#,sname from (select a.s#,a.Sname,b.c# from student a,sc b where b.s#=a.s#)c where exists (select count(1) from (select c# from sc where s#='001') d where d.c#=c.c#) and s# not in('001');
5、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;
update sc set score=(select avg(score) from sc c# in b) where c# in (select cc# from (select a.c# cc#,b.tname ttname from course a,teacher b where a.t#=b.t#) c where c.ttname='叶平') b;
6、删除学习“叶平”老师课的SC表记录。
delete from sc where c# in (select c# from (select a.c# ,b.tname from course a,teacher b where a.t#=b.t#) c where c.ttname='叶平');
我也是菜鸟,希望对你有 帮助;