使用下列数据表。“学生”表:学号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|NOTNULL] [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子句中给出。