单选题 查询选修C2课程号的学生姓名,下列SQL语句中错误是
【正确答案】 D
【答案解析】[解析] 选项A中,使用EXISTS谓词来检查子查询中是否有结果返回,它的查询过程是:首先在外查询中,从S表中取出第一条记录,再在内查询中,针对该记录,在SC表中逐条记录判断是否存在符合where条件(即“选修C2课程号的学生”)的记录,如果存在,则从外查询的s表中查找出该记录对应的“姓名”值;然后依次类推,从S表中取出第二条记录,在内查询中与SC表中的所有记录进行比较,直到将S表中的所有记录都处理完毕。选项B是嵌套查询,先在内查询中从SC表中获得选修了C2课程号的学生的“学号”,再在外查询中从S表中查找出这些“学号”对应学生的“姓名”,由于选修了C2课程号的学生可能不止一个,因此在内查询中获得的“学号”是一个集合,因此应该使用运算符IN。
选项C是联接查询,将S表和SC表以“学号”字段相等为条件进行联接,查找出选修了C2课程号的学生。