单选题 20~27题使用的数据如表1和表2所示。
表1 教师表(TEACHER.DBF)
教师号
姓名
性别
籍贯
职称
年龄
工资/元
0001
王吉兵
江苏
讲师
27
2003.50
0002
张晓春
安徽
副教授
28
2800.50
0003
左燕
江苏
讲师
25
2040.00
0004
赵华
安徽
副教授
35
2800.00
0005
李宁
山东
讲师
24
2500.00
表2 讲课表(JK.DBF)
教师号
课号
学时
0001
0001
98
0002
0002
76
0001
0002
80
0002
0003
69
0003
0001
75
0003
0003
68
0004
0001
89
0005
0001
76
0004
0002
65
0003
0002
90


单选题 要选出总学时数超过200的教师的教师号和总学时数,下列正确的语句是______。
【正确答案】 C
【答案解析】[分析] 要选出总学时数超过200的教师信息,必须要求出每个教师的总学时数,因此要按照教师号进行分组,利用统计函数SUM()求出每个教师的总学时数,再通过HAVING子句筛选出符合条件的分组。
单选题 要求出教师中总学时数前三名的教师的教师号、姓名和总学时数,下列语句中正确的是______。
【正确答案】 C
【答案解析】[分析] 本题涉及两个表,因此需在两张表之间按教师号进行内部连接,注意内部连接的关键字为INNER JOIN…ON。为求出教师的总学时数,应按照教师号进行分组。要列出总学时数前3名的教师信息,可按总学时数降序排列,用TOP 3子句指定结果集中只包含排在前面的3条记录。
单选题 下列程序执行后,结果中将包含______条记录。
SELECT TEACHER.教师号,TEACHER.姓名;
  FROM TEACHER INNER JOIN JK;
  ON TEACHER.教师号=JK.教师号;
  WHERE JK.学时BETWEEN 80 AND 100
【正确答案】 C
【答案解析】[分析] 本题按照教师号相等的条件在TEACHER表和JK表之间进行内部连接,在连接的结果中选出学时在80到100之间的记录。故结果中有4条记录。
单选题 把姓名为“王吉兵”的教师所讲的课号为“0002”课的学时数变为原来的1.5倍,使用的语句为______。
【正确答案】 C
【答案解析】[分析] 本题涉及“姓名”、“课号”和“学时”3个字段,这3个字段分属于两个表。要在讲课表中修改某教师的某门课的学时数,必须知道该教师的教师号和课号,而本题没有给定教师号,所给的是姓名,故可以通过子查询从TEACHER表查询出姓名为“王吉兵”的教师的教师号,然后通过IN谓词形成更新记录的条件。注意:UPDATE语句的格式为UPDATE表名SET字段名=表达式WHERE<条件>,由此可知只有答案C是正确的。
单选题 要给讲课表(JK.dbf)的学时字段设置一个字段级有效性规则,规则为“学时>=10 AND学时<=300”,如果在输入时违反了该规则将给出提示信息“学时必须在10~300之间。”正确的语句是______。
【正确答案】 C
【答案解析】[分析] 给字段设定有效性规则,实际上是修改表的结构,所以使用ALTER TABLE命令,修改字段的有效性规则命令的一般格式如下:
ALTER TABLE 表名 ALTER [COLUMN] 字段名 SET CHECK<逻辑表达式>;
[ERROR<字符型表达式>
故只有答案C是正确的。
单选题 要把讲课表中的“课号”字段更名为“课程号”,下列命令正确的是______。
【正确答案】 D
【答案解析】[分析] 修改表的结构使用ALTER TABLE命令。命令“ALTER TABLE<表名>ALTER<列名>”只能对已有字段的类型、长度、小数位和有效性规则进行修改,命令“ALTER TABLE<表名>DROP<列名>”是删除表中的某字段。命今“ALTER TABLE<表名>RENAME <列名>TO<列名2>”的作用是把表中的名为<列名1>的字段名改为<列名2>。故答案D是正确的。
单选题 创建一个名为RS的视图,用来显示所有教师的教师号、姓名和总课时,下面正确的语句是______。
【正确答案】 D
【答案解析】[分析] 创建视图使用的命令格式如下:
CREATE VIEW 视图名 AS SELECT 命令
其中,SELECT命令为任意可以执行的SELECT命令。由于输出字段涉及两个表,故应在WHERE子句中按照教师号相等进行连接,由于要显示每个教师的教师号、姓名和总课时,故应该按照教师号进行分组,并对学时字段进行分组求和。
单选题 给教师表(TEACHER.DBF)增加一行,该行的教师号、姓名和工资值分别为“0006”、“赵怀新”和2030.00。下列命令正确的是______。
【正确答案】 C
【答案解析】[分析] 可通过INSERT INTO命令为表插入记录,其一般格式如下:
INSERT INTO dbf_name [(fname1[,fname2,…])]
VALUES(eExpression1 [,eExpression2,…])
其中,fname1[,fname2,…]字段名列表用于指定插入的新记录的哪些字段需要填值,默认时表示全部字段;eExpression1[,eExpression2,…]表达式列表指定新插入记录的字段值。需要注意的是,如果指定了字段名列表,则表达式列表必须与之对应,否则表达式列表必须按照表结构定义字段的顺序来指定所有字段的值。注意:INSERT INTO后面直接跟表名,而不需要有关键词“TABLE”。