问题 单项选择题

(31)~(35)题使用如下数据表:
学生(学号(C,8),姓名(C,6),性别(C,2),出生日期(D) )
选课(学号(C,8),课程号(C,3),成绩(N,5,1))

查询选修课程号为"007"课程得分最高的学生,正确的SQL语句是

A. SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号;AND课程号="007"AND成绩>=ALL(SELECT成绩FROM选课)
B. SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号;AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号="007")
C. SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号;AND成绩>=ANY(SELECT成绩FROM选课WHERE课程号="007")
D. SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号;AND课程号="007"AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号="007")

答案

参考答案:D

解析: 在所有选项中通过嵌套查询来实现题目的要求,ALL要求在子查询中的所有行都使结果为真时,结果才为真;ANY只要子查询中有一行能使结果为真,则结果就为真。最高分应该为成绩>=ALL(…),要查询选课号为“007”的同学,所以内外查询中都要用到条件“课程号=”007””。

单项选择题
单项选择题