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

单选题 检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的命令是( )。
【正确答案】 B
【答案解析】[解析] 本题中首先通过GROUP BY短语将“课程”表中的记录按“课程编号”分组,然后通过MAX()函数求出每组中的最高成绩,即每门课程的最高成绩,由于查询输出结果涉及到多个表的字段,因此要使用连接查询,表之间的连接条件放在WHERE短语中,AND用来连接两个连接条件,以保证在查询的3个表之间建立联系。
单选题 为“课程”表中定义“开课系名”字段的默认值为“中文”,正确的命令是( )。
【正确答案】 B
【答案解析】[解析] 利用SQL命令可以对基本表的结构进行修改,利用以下命令可以修改表结构、定义有效性规则:
ALTER TABLE <表名>
ALTER [CULUMN]<字段名1>[NULL|NOT NULL]
[SET DEFAULT<表达式>]
[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子句中给出。