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

单选题 查询学生选修课程成绩75分以上的学生学号,正确的SQL语句是
A. SELECT DISTINCT 学号 FROM SC WHERE "成绩">75
B. SELECT DISTINCT 学号 FROM SC WHERE 成绩>75
C. SELECT DISTINCT 学号 FROM SC WHERE 成绩>"75"
D. SELECT DISTINCT "学号" FROM SC WHERE "成绩">75
【正确答案】 B
【答案解析】[解析] 在WHERE条件中成绩不需要用引号括起来,因此A)和D)排除,成绩是数值型字段,因此75也不需要加双引号,故选项C)也错误。
单选题 查询同时选修课程号为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)。
单选题 假设所有的选课成绩都已确定。显示"2002"号课程成绩中最高的20%记录信息,正确的SQL命令是
A. SELECT * TOP 20 FROM SC ORDER BY 成绩 WHERE 课程号="2002"
B. SELECT * PERCENT 20 FROM SC ORDER BY 成绩 DESC
WHERE 课程号="2002"
C. SELECT * TOP 20 PERCENT FROM SC ORDER BY 成绩
WHERE 课程号="2002"
D. SELECT * TOP 20 PERCENT FROM SC ORDER BY 成绩 DESC
WHERE 课程号="2002/
【正确答案】 D
【答案解析】[解析] 特殊选项TOP的格式为“TOP<数字表达式>[PERCENT]”,当不用PERCENT时,数字表达式是1至32767间的整数,说明显示前几个记录,当用PERCENT时,数字表达式是0.01至99.99间的实数,说明显示结果中前百分之几的记录。TOP短语要与ORDER BY短语同时使用才有效。
单选题 查询有选课记录,但没有考试成绩的学生的学号、姓名和课程号,正确的SQL语句是
A. SELECT学号,课程号FROM SC WHERE成绩=""
B. SELECT学号,课程号FROM SC WHERE成绩=.F.
C. SELECT学号,课程号FROM SC WHERE成绩=NULL
D. SELECT学号,课程号FROM SC WHERE成绩 IS NULL
【正确答案】 D
【答案解析】[解析] “没有考试成绩”表示成绩字段值为空,而表示空值时应该用“IS NULL”不能用“=”,故选项D)正确。
单选题 查询选修课程在5门以上的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是
A. SELECT S.学号,姓名,平均成绩 FROM S,SC
WHERE S.学号=SC.学号
GROUP BY S.学号 HAVING COUNT(*)>5 ORDER BY 平均成绩 DESC
B. SELECT 学号,姓名,AVG (成绩) FROM S,SC
WHERE S.学号=SC.学号 AND COUNT (*)>5
GROUP BY 学号 ORDER BY 3 DESC
C. SELECT S.学号,姓名,AVG (成绩) 平均成绩 FROM S,SC
WHERE S.学号=SC.学号AND COUNT(*)>5
GROUP BY S.学号 ORDER BY 平均成绩 DESC
D. SELECT S.学号,姓名,AVG(成绩)平均成绩 FROM S,SC
WHERE S.学号=SC.学号
GROUP BY S.学号 HAVING COUNT(*)>5 ORDER BY 3 DESC
【正确答案】 D
【答案解析】[解析] 题目要求查询平均成绩,表中不存在“平均成绩”字段,需要使用AVG函数,故A)不正确;学生表student和成绩表score都含有“学号”字段,在查询时需指明学号属于哪个表,故B)不正确;GROUP BY短语用于对查询结果进行分组,后跟随HAVINC短语来限定分组必须满足此题查询选修课在5门以上的学生,必须在分组后再统计,所以CONM(大)>S应在HAVING后,故本题答案为D)。