问题 单项选择题

基于学生表S和学生选课表SC两个数据库表,它们的结构如下:
S(学号,姓名,性别,年龄),其中学号、姓名和性别为C型字段,年龄为N型字段;
SC(学号,课程号,成绩),其中学号和课程号为C型字段,成绩为N型字段。

查询同时选修课程号为2001和2005课程的学生的学号,正确的命令是

A. SELECT 学号 FROM SCORE SC WHERE 课程号=’2001’ AND 学号 IN
(SELECT 学号 FROM SCORE SC WHERE 课程号=’2005’)
B. SELECT 学号 FROM SCORE SC WHERE 课程号=’2001’ AND 学号=
(SELECT 学号 FROM SCORE SC WHERE 课程号=’2005’)
C. SELECT 学号 FROM SCORE SC WHERE 课程号=’2001’ AND 课程号=’2005’
D. SELECT 学号 FROM SCORE SC WHERE 课程号=’2001’ OR ’2005’

答案

参考答案:A

解析: 嵌套查询所要求的结果出自一个关系,但相关的条件却涉及多个关系。其内层基本上也是一个SELECT-FROM-WHERE查询语句。简单嵌套查询可使用谓词IN或NOT IN来判断在外层的查询条件中是否包含内层查询的结果。本题要查询同时选修课程号为C1和C5课程的学生的学号,外层查询包含了内层查询的结果。故本题答案为A)。

填空题
单项选择题