(31)~(35)题使用如下三个数据库表:
学生表:student (学号,姓名,性别,出生日期,院系)
课程表:course (课程号,课程名,学时)
选课成绩表:score (学号,课程号,成绩)
其中出生日期的数据类型为同期型,学时和成绩为数值型,其他均为字符型。
查询同时选修课程号为C1和C5课程的学生的学号,正确的命令是______。
A.SELECT 学号 FROM score sc WHERE课程号=’C1’ AND 学号 IN
(SELECT 学号 FROM score sc WHERE 课程号=’C5’)
B.SELECT 学号 FROM score sc WHERE 课程号=’C1’ AND 学号=
(SELECT 学号 FROM score sc WHERE 课程号=’C5’)
C.SELECT 学号 FROM score sc WHERE 课程号=’C1’ AND 课程号=’C5’
D.SELECT 学号 FROM score sc WHERE 课程号=’C1’ OR ’C5’
参考答案:A
解析: 本题考查的知识点是SQL查询。选项A正确,这是一个子查询,意思是选修了C1课程的学号也存在于选修了C5课程的学号中,符合题目的要求;选项B中“SELECT 学号 FROM score sc WHERE 课程号=’C5’”部分符合条件的学号结果为多个,不是唯一,所以不能使用“=”号连接:选项C,乍一看很符合题意,其实不然,在一个记录中,课程号只有一个值,不可能同时存在课程号既等于C1又等于C5的情况,所以是错误的;选项D中只是查询了选修课程号为C1或者C5的学生的学号,和题意不符。