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

单选题 查询所有1988年9月10日(含)以后出生、性别为女的学生,正确的SQL语句是
A. SELECT*FROM学生WHERE出生日期>={^1988-09-10}AND性别="女"
B. SELECT*FROM学生WHERE出生日期<={^1988-09-10}AND性别="女"
C. SELECT*FROM学生WHERE出生日期>={^1988-09-10}OR性别="女"
D. SELECT*FROM学生WHERE出生日期<={^1988-09-10}OR性别="女/
【正确答案】 A
【答案解析】[解析] 题目中要求查询1988年9月10日(含)以后出生、性别为女的学生,要求两个条件同时成立,所以要用AND连接,而1988年9月10日以后出生,则出生日期>={^1988-09-10}。
单选题 假定学号的第3、4位为专业代码。要计算各专业学生选修课程号为“007”课程的平均成绩,正确的SQL语句是
A. SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课
WHERE课程号="007"GROUP BY专业
B. SELECT SUBS(学号,3,2)As专业,AVG(成绩)As平均分FROM选课
WHERE课程号="007"GROUP BY 1
C. SELECT SUBS(学号,3,2)AS专业,AVG(成绩)AS平均分FROM选课
WHERE课程号="007"ORDER BY专业
D. SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课
WHERE课程号="007"ORDER BY 1
【正确答案】 B
【答案解析】[解析] 根据题目要求,要把不同专业的学生进行分组并求平均成绩,所以要用到短语GROUP BY,在SELECT语句中,目标字段放在AS之后,“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””。
单选题 插入一条记录到“选课”表中,学号、课程号和成绩分别是“09080001”、“001”和80,正确的SQL语句是
A. INSERT INTO选课(学号,课程号,成绩)FROM VALUES("09080001","001",80)
B. INSERT INTO选课VALUES("09080001","001",80)
C. INSERT VALUES("09080001","001",80)TO选课(学号,课程号,成绩)
D. INSERT VALUES("09080001","001",80)INTO选课(学号,课程号,成绩)
【正确答案】 B
【答案解析】[解析] 插入语句的格式一为:INSERT INTO数据表名[(字段1[,字段2,…])]VALUES(表达式1[,表达式2,…])。
插入语句的格式二为:INSERT INTO数据表名FROM ARRAY数组名。第二种格式说明从指定的数组中插入值。
单选题 将学号为“09080001”、课程号为“002”的选课记录的成绩改为92,正确的SQL语句是
A. UPDATE FROM选课SET成绩WITH 92 FOR学号="09080001"AND课程号="002"
B. UPDATE FROM选课SET成绩=92 FOR学号="09080001"AND课程号="002"
C. UPDATE选课SET成绩WITH 92 WHERE学号="09080001"AND课程号"002"
D. UPDATE选课SET成绩=92 WHERE学号="09080001"AND课程号="002/
【正确答案】 D
【答案解析】[解析] 更新数据格式为:UPDATE数据表名SET列名1=表达式1[,列名2=表达式2…]WHERE筛选条件。