首页 > 试题广场 >

设学生课程数据库中有三个关系。用SQL语句表达下列操作:

[问答题]

设学生课程数据库中有三个关系:

学生关系S(S#,SNAME,AGE,SEX)

学习关系SC(S#,C#,GRADE)

课程关系C(C#,CNAME)

其中S#、C#、SNAME、AGE、SEX、GRADE、CNAME分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。

用SQL语句表达下列操作:

(1)检索选修课程名称为“MATHS”的学生的学号与姓名

(2)检索至少学习了课程号为“C1”和“C2”的学生的学号

(3)检索年龄在18到20之间(含18和20)的女生的学号、姓名和年龄

(4)检索平均成绩超过80分的学生学号和平均成绩

(5)检索选修了全部课程的学生姓名

(6)检索选修了三门课以上的学生的姓名


答案:(1)SELECT SNAME,AGE
          FROM S,SC,C
          WHERE S.S#=SC.S#
          AND C.C#=SC.C#
          AND CNAME=’ MATHS’
    (2) SELECT S#
         FROM SC
         WHERE CNO=’C1’ AND S# IN( SELECT S#
                             FROM SC
                             WHERE CNO=’C2’)
   (3)SELECT S#,SNAME,AGE
      FROM S
      WHERE AGE BETWEEN 18 AND 20
   (4) SELECT S# ,AVG(GRADE) ‘平均成绩’
       FROM SC
       GROUP BY S#
       HAVING AVG(GRADE)>80
(5) SELECT  SNAME
FROM  S
WHERE  NOT  EXISTS
              (SELECT  *
               FROM  C
               WHERE NOT  EXISTS
                  (SELECT  *
                   FROM  SC
                   WHERE S#=S.S#  AND C#=C.C#
                          )
) 
     (6) SELECT SNAME
      FROM S,SC
        WHERE S.S#=SC.S#
       GROUP BY SNAME
       HAVING COUNT(*)>3    

发表于 2017-05-07 09:13:55 回复(1)