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表记录。

解决方案 »

  1.   

    这种sql基础知识,楼主还是自己研究着写,写着写着就会了
      

  2.   

    1. select s#,avg(score) from sc group by s# having avg(score)>602. select s.s#,s.sname,count(ssc.s#),sum(score)from student s left join sc ssc on s.s#=ssc.s# group by s.s#3. select count(tname) from teacher where tname like '李%'4. select s.s#,s.sname from student s join sc ssc on s.s#=ssc.s# where ssc.c# in(  select c# from sc where s#='001')5. update sc set sc.score=(select avg(score) from sc where c#=(select c# from course join techer on course.t#=teacher.t# where teacher.tname='叶平' ) ) where c#=(select c# from course join techer on course.t#=teacher.t# where teacher.tname='叶平' ) 6.delete from sc where c#=#=(select c# from course join techer on course.t#=teacher.t# where teacher.tname='叶平' ) 我也是菜鸟,好久没有碰数据库了,第5句有问题我知道,仅供参考,最后一句涉及级联删除问题,我没有加上句。你自己怎么处理在后面加上
      

  3.   

    Student(S#,Sname,Sage,Ssex)学生表
    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='叶平');
    我也是菜鸟,希望对你有 帮助;
      

  4.   

    5. update sc ssc set ssc.score=(select avg(score) from sc where c#=ssc.c# ) where ssc.c# in(select c# from course join techer on course.t#=teacher.t# where teacher.tname='叶平' )