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

单选题 查询学生选修课程成绩小于60分的,正确的SQL语句是______。
A. SELECT DISTINCT 学号 FROM SC WHERE "成绩"<60
B. SELECT DISTINCT 学号 FROM SC WHERE 成绩<"60"
C. SELECT DISTINCT 学号 FROM SC WHERE 成绩<60
D. SELECT DISTINCT “学号” FROM SC WHERE "成绩"<60
【正确答案】 C
【答案解析】[解析] 在查询语句中“学号”和“成绩”都是字段名,而不是字段值,所以不用加双引号。成绩字段是数值型,因此值“60”直接书写,不用加双引号。
单选题 查询学生表S的全郛记录并存储于临时表文件one中的SQL命令是______。
A. SELECT * FROM 学生表 INTO CURSOR one
B. SELECT * FROM 学生表 TO CURSOR one
C. SELECT * FROM 学生表 INTO CURSOR DBF one
D. SELECT * FROM 学生表 TO CURSOR DBF one
【正确答案】 A
【答案解析】[解析] 查询语句中用于将查询结果输出去,可以使用INTO或者TO短语。INTO子句的目标可以有3种:ARRAY<数组>,可将查询结果输出到数组中;CURSOR<临时表名>,可将查询结果输出到临时表中;DBF<表名>,可将查询结果输出到表中。TO FILE子句的<文件名>表示输出到指定的文本文件,并取代原文件内容;TO PRINTER表示输出到打印机;TO SCREEN表示输出到屏幕。本题的要求是将查询结果保存在临时文件one中,所以应选择A。
单选题 查询成绩在70分至85分之问学生的学号、课程号和成绩,正确的SQL语句是______。
A. SELECT 学号,课程号,成绩 FROM SC WHERE 成绩 BETWEEN 70 AND 85
B. SELECT 学号,课程号,成绩 FROM SC WHERE 成绩>=70 OR 成绩<=85
C. SELECT 学号,课程号,成绩 FROM SC WHERE 成绩>=70 OR <=85
D. SELECT 学号,课程号,成绩 FROM SC WHERE 成绩>=70 AND <=85
【正确答案】 A
【答案解析】[解析] BETWEEN 70 AND 85表示成绩在70~85之间,是正确的。也可以表示为成绩>=70 AND 成绩<=85。
单选题 查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的SQL语句是______。
A. SELECT 学号,课程号 FROM SC WHERE 成绩=""
B. SELECT 学号,课程号 FROM SC WHERE 成绩=NULL
C. SELECT 学号,课程号 FROM SC WHERE 成绩 IS NULL
D. SELECT 学号,课程号 FROM SC WHERE 成绩
【正确答案】 C
【答案解析】[解析] 利用空值查询,查询空值时要使用IS NULL,而=""、=NULL都是无效的,因为空值是一个不确定的值,所以不能用“=”进行比较。
单选题 查询选修C2课程号的学生姓名,下列SQL语句中错误是______。
A. SELECT 姓名 FROM S WHERE EXISTS
(SELECT * FROM SC WHERE 学号=S.学号 AND 课程号='C2')
B. SELECT 姓名 FROM S WHERE 学号 IN
(SELECT 学号 FROM SC WHERE 课程号='C2')
C. SELECT 姓名 FROM S JOIN SC ON S.学号=SC.学号 WHERE 课程号='C2'
D. SELECT 姓名 FROM S WHERE 学号=
(SELECT 学号 FROM SC WHERE 课程号='C2')
【正确答案】 D
【答案解析】[解析] WHERE子句说明查询条件,即选择元组的条件。SELECT学号FROM SC WHERE 课程号='C2'语句的执行结果是查找选修C2课程号的所有学生学号。根据题目要求,输出的是这些学号对应的学生姓名。选项C是正确的,选项D是错误的。