1. 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )

    SELECT s.sid,s.sname,r.cum,r.scorenum FROM
    (SELECT Student.sid,Student.sname FROM Student)s
    LEFT JOIN
    (SELECT SC.SId,SUM(SC.score)scorenum,COUNT(SC.CId)cum FROM SC GROUP BY SC.SId)r
    ON s.sid = r.sid

    1. 查有成绩的学生信息

    SELECT FROM Student WHERE Student.SId IN (SELECT SC.SId FROM SC)

    SELECT
    FROM Student WHERE EXISTS(SELECT SC.SId FROM SC WHERE Student.SId = SC.SId)

    1. 查询「李」姓老师的数量

    SELECT COUNT(TID) FROM Teacher WHERE Tname LIKE ‘李%’

    1. 查询学过「张三」老师授课的同学的信息

    SELECT S.* FROM SC,Course C ,Student S ,Teacher T
    WHERE S.SId = SC.SId
    AND SC.CId = C.CId
    AND C.TId = T.TId
    AND T.Tname = ‘张三’

    1. 查询没有学全所有课程的同学的信息

    因为有学生什么课都没有选,反向思考,先查询选了所有课的学生,再选择这些人之外的学生.
    SELECT * FROM Student WHERE Student.SId NOT IN(
    SELECT SC.SId FROM SC GROUP BY SC.SId HAVING COUNT(SC.CId) = (SELECT COUNT(CId) FROM Course)
    )