问题
单项选择题
第31~35题基于学生表S和学生选课表SC两个数据库表,它们的结构如下: S(学号,姓名,性别,年龄),其中学号、姓名和性别为C型字段,年龄为N型字段。 SC(学号,课程号,成绩),其中学号和课程号为C型字段,成绩为N型字段(初始为空值)。
查询选修C2课程号的学生姓名,下列SQL语句中错误的是( )。
A.SELECT姓名FRoM S WHERE EXISTS
(SELECT*FROM SC WHERE学号=
S.学号AND课程号=’C2’)
B.SELECT姓名FROM S WHERE学号IN
(SELECT学号FROM SC WHERE课程号=’C2’)
C.SELECT姓名FROM S JOIN SC ON
S.学号=S
C.学号WHERE课程号=’C2’
D.SELECT姓名FROM S WHERE学号=
(SELECT学号FROM SC WHERE课程号=’C2’)
答案
参考答案:D
解析:【解析】选项D中的内查询SELECT学号FR()M SC wHERE课程号=”C2”的查询结果有可能为多个,而选项D中的外层查询WHERE子句后面的逻辑表达式使用“=”,这样会导致产生错误的结果。