Student(S#,Sname,Sage,Ssex)学生表 S#:学号;Sname:学生姓名;Sage:学生年龄;Ssex:学生性别
Course(C#,Cname,T#)课程表 C#,课程编号;Cname:课程名字;T#:教师编号
SC(S#,C#,score)成绩表 S#:学号;C#,课程编号;score:成绩
Teacher(T#,Tname)教师表 T#:教师编号; Tname:教师名字
问题:
1、查询“001”课程比“002”课程成绩高的学生的学号
select a.S# from
(select S#,C#,score from SC where C#=001') a,
(select S#, C#, score from SC where C#='002') b where a.score > b.score and a.S# = b.S#;
2、查询平均成绩大于60的所有学生的学号和平均成绩
select S#, avg(score)
from SC group by S# having avg(score) > 60;
3、查询所有同学的学号、姓名、选课数、总成绩;
select stu.S#, stu.Sname, count(SC.C#), sum(score)
from student stu left join SC on stu.S# = SC.S# group by stu.S#, stu.sname;
4、查询所有课程成绩小于60分的同学的学号、姓名;
select S#, sname
from student where S# not in(select student.S# from student, SC where student.S# = SC.S# and score > 60);
5、查询没学过“叶平”老师课的同学的学号、姓名;
select student.S#, student.sname
from student where S# not in (select S# from teacher,course, sc where teacher.T# = course.T# and sc.C# = course.C# and teacher.tname = '叶平');
6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;
select S#, sname
from student, SC where student.S# = SC.S# and SC.C#='001' and exists (select * from SC as sc_2 where sc_2.S# = SC.S# and sc_2.C# = '002');
7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;
select S#, sname
from student
where S# in (select S# from SC, course, teacher where SC.C# = course.C# and course.T# = teacher.T# and teachar.tname='叶平' group by S# having
count(SC.S#) = (select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')
)
8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;
seelct S#, sanme
from (select student.S#, student.sname, score, (select score from SC where SC.S# = student.S# and SC.C#='002') score_2 from student, SC
where student.S# = SC.S# and SC.C# = '001') s_2 where score_2 < score;