问题
单项选择题
(33)至(35)题基于“学生-选课-课程”数据库中如下三个关系:
S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)
查询选修了课程号为‘C2’的学生号和姓名,若用下列SQL的SELECT语句表达时,哪一个是错误的
A.SELECT S.S#,SNAME FROM S WHERE S.S#
=(SELECT SC.S# FROM SC WHERE C#=’C2’)
B.SELECT S.S#,SNAME FROM S,SC
WHERE S.S#=SC.S# AND C#=’C2’
C.SELECT S.S#,SNAME FROM S,SC
WHERE S.S#=SC.S# AND C#=‘C2’ORDER BY S.S#
D.SELECT S.S#,SNAME FROM S WHERE S.S#
IN(SELECT SC.S# FORM SC WHERE C#=‘C2’)
答案
参考答案:A
解析: 选项A是一个复合查询语句。先看后面括号内的部分SELECT SC.S# FROM SC WHERE C#=’C2’。这是在表SC中查找选修了课程号为’C2’的学生学号。再合起来看外层查询语句的条件部分用的是“=”,这显然是不正确的。所以本题正确答案为选项A。