设学生课程数据库中有三个关系:
学生S(S#,Sname,Sage,Sex)
课程C(C#,Cname)
学习SC(S#,C#,Grade)
其中,S#、C#、Sname、Sage、Sex、Grade和Cname分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。
用SQL语言表达下列操作。
问答题
检索选修课程名称为“Maths”的学生的姓名和年龄。
【正确答案】Select Sname,Sage
From S,SC,C
Where C.C#=SC.C# and S.S#=SC.S#
and Cname="Maths"
【答案解析】
问答题
检索至少学习了课程名为“C1”和“C2”的学生的学号。
【正确答案】Select S#
From SC
Where Cname='C1'
and S# in(Select S#
From SC
Where Cname='C2')
【答案解析】
问答题
检索年龄在18到20之间(含18和20)的学生的学号、姓名和年龄。
【正确答案】Select S#,Sname,Sage
From S
Where Sage Between 18 and 20
【答案解析】
问答题
检索平均成绩超过80分的学生学号和平均成绩。
【正确答案】Select S#,AVG(Grade)
From SC
Group by S#
Having AVG(Grade)>80
【答案解析】
【正确答案】Select Sname
From S
Where not exists(Select *
From C
Where not exists(Select *
From SC
Where S#=S.S# and C#=C.C#)
)
【答案解析】
【正确答案】Select Sname
From S,SC
Where S.S#=SC.S#
Group by Sname
Having Count(*)>3
【答案解析】