单选题 (31)到(35)题中使用如下数据表。
“学生”表:学号C (8),姓名C (8),性别C (2),系名 (6)
“课程”表:课程编号C (4),课程名称C (12),开课系名C (10)
“成绩”表:学号C(8),课程编号C(4),成绩N (6,2)

单选题 检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的SQL语句是( )。
【正确答案】 B
【答案解析】[解析] 本题中首先通过GROUPBY短语将“课程”表中的记录按“课程编号”分组,然后通过MAX()函数求出每组中的最高成绩,即每门课程的最高成绩。由于查询输出结果涉及到多个表的字段,因此要使用连接查询,表之间的连接条件放在WHERE短语中,AND用来连接两个连接条件,以保证在查询的3个表之间建立联系。
单选题 定义“课程”表中 “开课系名”字段的默认值为“中文”的正确命令是( )。
【正确答案】 B
【答案解析】[解析] 利用SQL命令可以对基本表的结构进行修改,利用下列命令可以修改表结构、定义有效性规则:
ALTER TABLE<表名>
ALTER[COLUMN]<字段名1>[NULL|NOT NULL]
[SETDEFAULT<表达式>]
[SET CHECK<逻辑表达式>[ERROR<字符型文本信息>]]
|[RENAME COLUMN<字段名2>TO<字段名3>]
其中,SET DEFAULT<表达式>可以用来指定字段的默认值。注意:表达式值的类型要与字段类型一致。
单选题 查询所有选修了“计算机网络”的学生成绩,结果显示该学生的“姓名”、“系名”和“数据库原理”的“成绩”,并按成绩由高到低的顺序排列,下列语句中正确的是 ( )。
【正确答案】 D
【答案解析】[解析] 本题是一个多表连接查询的SQL语句,关键要注意表间连接条件的使用,如果使用超连接方式查询,则正确的语句格式为:
SELECT……
FROM<数据库表1>INNER JOIN<数据库表2>
ON<连接条件>
WHERE……
其中,INNER JOIN等价于JOIN,为普通的连接,在Visual FoxPro中称为内部连接;ON<连接条件>
指定两个进行表连接的条件字段。
如果使用的是普通的连接方式,则只需在FROM短语中指定查询的数据表,各表名之间用逗号隔开,而各表之间的连接放在WHERE短语后面,设计两个连接条件时,用AND短语连接这两个条件。
单选题 将“学生”表中“系名”字段的宽度由原来的6改为10,正确的语句是( )。
【正确答案】 C
【答案解析】[解析] 利用SQL命令可以对基本表的结构进行修改,利用下列命令可以修改表中字段的相关属性:
ALTER TABLE<表名>
ALTER[[COLUMN][<字段名1><字段类型>[(<长度>[,<小数位数>])]
本题中选项A)、B)、D)中在修改表字段宽度时,所使用的命令短语都是错误的,属于语法错误。
单选题 在已打开数据库的情况下,利用SQL派生一个包含姓名、课程名称和成绩字段的xsview视图,正确的语句是( )。
【正确答案】 D
【答案解析】[解析] 利用SQL命令可以定义直接建立视图,命令格式如下:
CREATE VIEW 视图名 AS;
SELECT 语句
本题中要注意的是在定义视图时,SELECT语句部分不需要用括号括起来,在进行超连接查询时,可使用的SQL命令格式如下:
SELECT……
FROM<数据库表1>INNER JOIN<数据库表2>
ON<连接条件>
WHERE……
其中,INNER JOIN等价于JOIN,为普通的连接,在Visual FoxPro中称为内部连接;ON<连接条件>指定两个进行表连接的条件字段。
注意:连接类型在FROM子句中给出,并不是在WHERE子句中,连接条件在ON子句中给出。