题目
下列查询结果是什么?
已知关系模式:S(Sno,Sname,Sclass),C(Cno,Cname,Cteacher),SC(Sno,Cno,Scgrade)。其中,S为学生关系:Sno学号, Sname姓名,Sclass班级; C为课程关系:Cno课程号, Cname课程名, Cteacher任课教师;SC为学生选课关系:Scgrade成绩。
下列查询的结果是什么?
(1)SELECT * FROM SC WHERE Cno= ‘C01’ and Cno= ‘C02’;
(2)SELECT Sno FROM SC WHERE Scgrade<60 and count(*)>2;
(3)SELECT Sno, Avg(Scgrade) FROM SC WHERE Scgrade<60 Group by Sno;
请试着回答一下,并分享你的观点。
(1)
没有结果。SQL查询语句的意思是同时满足课程号为C01和C02的学生。属性相同不能用and,而是应该用嵌套查询。
(2)
SQL查询语句的意思是满足成绩小于60,且课程数大于2的学号。条件语句中不能用聚合函数。
(3)
有结果。SQL查询语句的意思是查询成绩小于60的平均成绩和学号,并按照学号进行排列。
改:
SELECT studentNo,Avg(score)
FROM Score
WHERE score<60
Group by studentNo