单选题
18~25题使用的数据如表1和表2所示。
表1 学生表(STUDENT.DBF) 学号 | 姓名 | 性别 | 籍贯 | 年龄 | 980001 | 王吉兵 | 男 | 江苏 | 22 | 980002 | 张晓春 | 女 | 安徽 | 21 | 980003 | 左燕 | 女 | 江苏 | 25 | 980004 | 赵华 | 男 | 安徽 | 22 | 980005 | 李宁 | 男 | 山东 | 20 | |
表2 选课表(SKB.DBF) 学号 | 课号 | 成绩 | 980001 | 0001 | 98 | 980002 | 0002 | 76 | 980001 | 0002 | 80 | 980002 | 0003 | 69 | 980003 | 0001 | 75 | 980003 | 0003 | 68 | 980004 | 0001 | 89 | 980005 | 0001 | 76 | 980004 | 0002 | 65 | 980003 | 0002 | 90 | |
单选题
给选课表(SKB.DBF)增加一个元组,元组值为“980005”、“0002”、93,则使用的语句正确的是______。
【正确答案】
B
【答案解析】[分析] Visual FoxPro支持两种SQL插入命令的格式:第一种格式是标准格式,第二种格式是Visual FoxPro的特殊格式。这里考核的是标准格式,格式如下:
INSERT INTO<表名>[(字段名1,字段名2,…)]VALUES(值1[,值2…])当需要插入一个包括所有字段的完整记录时,可以省略字段名。
单选题
要选出平均成绩超过80分的学生的学号和平均成绩,下列正确的语句是______。
【正确答案】
C
【答案解析】[分析] 根据题意可知应根据学号进行分组(使用GROUP BY子句),并对成绩进行求平均值(AVG()函数),最后应选出满足条件的分组(使用HAVING子句)。
单选题
要求出学生中平均成绩最高的人的学号、姓名和平均分,下列语句中正确的是______。
【正确答案】
C
【答案解析】[分析] 此题涉及两个表,两个表之间应根据学号相等进行连接,采用内部连接(INNER JOIN),表示连接的条件为“ON条件”。为求出平均成绩最高的人的学号、姓名和平均成绩,可根据学号进行分组,对成绩求平均,再根据平均成绩降序排列,选中结果中的第一条记录。
单选题
下列语句执行后,结果中将包含______条记录。
SELECT课号,MAX(成绩)AS最高成绩FROM SKB;
GROUP BY课号
【正确答案】
A
【答案解析】[分析] 本题的含义是从选课表中按课号进行分组,求出每门课的课号和最高成绩。显然每一门课为一条记录,只有3门课,故只有3条记录。
单选题
要给所有的选修课号为“0001”的女生的该课成绩增加5分,使用的语句为______。
【正确答案】
C
【答案解析】[分析] UPDATE命令用来更新表中的字段值,其格式如下:
UPDATE 表名 SET 列名 1=值1 [,列名 2=值 2,…] WHERE 条件
在条件部分,本题使用了子查询。本题用一个子查询查出了所有性别为“女”的学生的学号,然后通过IN运算符找出学号在女生集中且课号为“0001”的记录,把相应记录的成绩增加5分。
单选题
要给学生表(STUDENT.DBF)的年龄字段设置一个字段级有效性规则,其规则为“年龄>=15 AND年龄<=100”,如果在输入时违反了该规则,将给出提示信息“年龄必须在15~100之间。”正确的语句是______。
【正确答案】
C
【答案解析】[分析] 可使用ALTER TABLE命令来修改表的结构。设定字段的有效性验证规则的命令格式如下:
ALTER TABLE 表名 ALTER[COLUMN]字段名SET CHECK<逻辑表达式>;
[ERROR<字符型表达式>]
单选题
要给学生表(STUDENT.DBF)增加一个出生日期字段(日期型),下面选项中正确的是______。
【正确答案】
C
【答案解析】[分析] 给表增加一个字段的命令格式如下:
ALTER TABLE表名ADD [COLUMN] 字段名 字段类型(宽度[,小数位])…
单选题
创建一个名为RS的视图,用来显示所有学生的学号、姓名和平均成绩,则下面正确的语句是______。
【正确答案】
D
【答案解析】[分析] 创建视图使用的命令格式如下:
CREATE VIEW视图名AS SELECT命令
其中,SELECT命令为任意可以执行的SELECT命令。由于输出字段涉及两个表,故应在WHERE子句中按照学号相等进行连接,由于要求每个学生的平均成绩,故应该按照学号字段值进行分组求平均。