设教师表的结构为:(教师号、姓名、性别、职称、工资、所在系)。若要查询讲授课程号为“C140”的教师姓名,下列SELECT-SQL语句中,错误的语句是______。

admin2009-03-15  34

问题 设教师表的结构为:(教师号、姓名、性别、职称、工资、所在系)。若要查询讲授课程号为“C140”的教师姓名,下列SELECT-SQL语句中,错误的语句是______。

选项 A、SELECT姓名FROM教师表WHERE(教师号=ANY;(SELECT教师号FROM授课表WHERE课程号=“C140”))
B、SELECT姓名FROM教师表WHEREEXISTS(SELECT*FROM授课表;WHERE教师号=教师表.教师号AND课程号=“C140”)
C、SELECT姓名FROM教师表,授课表WHERE教师表.教师号=授课表.教师号;AND授课表.课程号=“C140”
D、SELECT姓名FROM教师表WHERE(教师号=ALL;(SELECT教师号FROM授课表WHERE课程号=“C140”))

答案8

解析 本查询是基于教师表和授课表查询讲授课程号为“C140”的教师的姓名,可以使用两种方法:等值连接查询和子查询。选项A采用的是返回一组值的子查询,先执行子查询,找到讲授课程号为“C140”的教师号,由于讲授“C140”课程的教师可能是一个或多个,返回的教师号为一组值的集合;再执行父查询,其中ANY也可以用IN代替,其含义为任意一个,即筛选出教师表中的教师号为子查询返回集合中的任意一个值所对应记录的教师姓名,此选项是正确的。选项B采用的也是子查询的一种:判断在子查询中是否存在相关的记录,当子查询检查到在授课表中存在一条满足其WHERE条件短语的记录时,父查询便得到一个教师姓名,重复执行上述过程,直到得出最后结果,即筛选出教师表中的教师号为子查询返回集合中的任意一个值所对应记录的教师姓名,此选项也是正确的。选项C是等值连接查询,即在教师表和授课表中,选取满足WHERE条件短语的教师姓名,是正确答案。选项D也采用的是返回一组值的子查询,但量词ALL在此处用法不当,是错误的。
转载请注明原文地址:https://kaotiyun.com/show/im7Z777K
0

最新回复(0)