单选题
(15)~(26)题使用的数据表如下:
当前盘当前日录下在数据库:学院.dbc,其中有“教师”表和“学院”表。
“教师”表:
职工号
系号
姓名
工资
主讲课程
11020001
01
肖海
3408
数据结构
11020002
02
王岩盐
4390
数据结构
11020003
01
刘星魂
2450
C语言
11020004
03
张月新
3200
操作系统
11020005
01
李明玉
4520
数据结构
11020006
02
孙民山
2976
操作系统
11020007
03
钱无名
3987
数据库
11020008
04
呼延军
3220
编译原理
11020009
03
王小龙
3980
数据结构
11020010
01
张国梁
2400
C语言
11020011
04
林新月
1800
操作系统
11020012
01
乔小延
5400
网络技术
11020013
02
周兴泄
3670
数据库
11020014
04
欧阳秀
3345
编译原理
“学院”表:
系号
系名
01
计算机
02
通信
03
信息管理
04
数学
单选题
为“学院”表增加一个字段“教师人数”的SQL语句是
【正确答案】
C
【答案解析】 [解析] 本题使用SQL对表结构进行修改。修改表结构的命令格式是: ALTER TABLE <表名> 可以使用ADD子句用于说明所增加的字段和字段属性说明,选项A和选项D的命令关键字 CIIANGE有误,选项B中缺少关键字TABLE.因此正确答案为选项C。
单选题
将“欧阳秀”的工资增加200元的SQL语句是
【正确答案】
D
【答案解析】 [解析] SQL中更新表数据的命令格式是: UPDATE<表名>SET字段=<表达式> WHERE<条件> 选项A和选项C错,WITH不是合法的关键字;选项B中用于设定条件的关键字WHEN是错误的,应使用WHERE关键字.选项D为正确答案。
单选题
下列程序段的输出结果是 CLOSE DATA a=0 use 教师 GO TOP DO WHILE.NOT.EOF() IF 主讲课程=“数据结构”.OR. 主讲课程="C语言" a=a+1 ENDIF SKIP ENDDO ?a
【正确答案】
C
【答案解析】 [解析] 本题程序段的功能是统计教师表中主讲课程字段为“数据结构”或者为“C语言”的记录个数,并将统计结果存入变量a中。其具体执行流程如下:首先将变量a的值初始化为0,然后打开教师表,用GO TOP命令将记录指针指向第一条记录,然后用一个循环结构扫描整个教师表,用条件判断语句IF主讲课程=“数据结构”、OR.“C语言”来逐条记录进行判断.如果该条记录满足主讲课程字段是“数据结构”或者“C语言”,那么将变量a的值加1,整个循环以记录指针指向教师表的最后一条记录为结束条件。最后显示变量a的值。我们可以从教师表中可以看出满足该条件的记录共有6个,因此正确答案为选项C。
单选题
有SQL语句: SELECT * FROM 教师 WHERE NOT (工资>3000 OR 工资<2000) 与如上语句等价的SQL语句是
【正确答案】
A
【答案解析】 [解析] BETWEEN…AND…是SQL中比较特殊的函数,经常与SQL联合使用用来设定查询条件,这个函数所设定的查询条件是值在某个范围内,并且包含边界取值,题目中WHERE所设定的条件是NOT(工资>3000 AND工资 <2000),其含义不是在小于2000或大于3000的范围内,这恰好是在2000到3000之间,选项A使用 BETWEEN…AND…设定查询条件,与此条件实现的功能一致.故选项A为正确答案。选项B表示工资大于2000并且小于3000,选项C表示工资大干 2000或者工资小于3000,选项D表示工资小于等于 2000并且大于等于3000。
单选题
为“教师”表的职工号字段添加有效性规则;职工号的最左边三位字符是110,正确的 SQL语句是
【正确答案】
B
【答案解析】 [解析] 本题考查使用SQL对表文件的字段进行有效性设置。可以使用命令 ALTER TABLE来实现对表的字段进行有效性设置,其格式为: ALTER TABLE <表名> ALTER<字段> SET CHECK<表达式> 四个选项中只有选项B是正确的书写方法,选项A错误在于命令关键字CHANGE的错误。选项C缺少子句关键字SET;选项D的命令关键字 CHANGE也是错误的。故正确答案为选项B。
单选题
有SQL语句: SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=; ALL (SELECT 工资 FROM 教师 WHERE 系号="02") 该语句的执行结果是系号
【正确答案】
A
【答案解析】 [解析] 本题中的SQL语句的功能是在教师表中选择出所有满足查询条件记录的系号。其中查询条件:工资>=ALL(SELECT 工资 FROM 教师 WHERE 系号="02")表示所要查询的记录的工资字段要比那些所有系号为02的记录的工资字段要高,其实际含义是查询那些工资比02系工资都高的教师所在的系号,从原始数据表中可以发现只有第2、5、12条记录是满足条件的,它们的系号字段分别为01、02,故选项A为正确答案。
单选题
建立一个视图salary,该视图包括了系号和(该系的)平均工资两个字段,正确的SQL语句是
【正确答案】
D
【答案解析】 [解析] 本题考查使用SQL语句创建视图。SQL中创建视图的命令格式是: CREATE VIEW<视图名>AS <SELECT查询语句> 另外,本题可以逐个排除错误答案,在四个选项中可以首先排除选项C,因为其缺少AS关键字;选项A也错误,因为其缺少SELECT关键字,无法形成查询语句-选项B的错误在于GROUP BY后面的关键字是系名,而原数据表中没有该字段,应该是按系号分组,故选项D为正确答案。
单选题
删除视图salary的命令是
【正确答案】
B
【答案解析】 [解析] 本题考查SQL中删除视图的命令。删除视图的命令格式为: DROP VIEW<视图名) 故选项B为正确答案。
单选题
有SQL语句: SELECT 主讲课程,COUNT(*) FROM 教师 GROUP BY 主讲课程 该语句执行结果含有的记录个数是
【正确答案】
D
【答案解析】 [解析] 本题考查使用COUNT()函数以及分组GROUP BY构造查询。该SQL语句的结果有多少条记录可以根据GROUP BY后面的字段进行判断,该语句以主讲课程字段为分组依据,可以查看原数据表,发现主讲课程字段有6个不同数据,因此该语句的查询结果应该有6条记录。故选项D为正确答案。
单选题
有SQL语句: SELECT COUNT(*) AS 人数,主讲课程 FROM 教师; GROUP BY 主讲课程 ORDER BY 人数 DESC 该语句执行结果的第一条记录的内容是
【正确答案】
A
【答案解析】 [解析] 题目中的SQL语句的功能是统计教授各个课程的教师总数,并且按能够教授每门课程教师人数进行降序排列。从原始数据表中可以看出数据结构课程的讲授人数最多,为4人因此应该是查询结果的第一条记录。故选项A为正确答案。
单选题
有SQL语句: SELECT 学院.系名,COUNT(*) AS 教师人数 FROM 教师,学院; WHERE 教师.系号=学院.系号 GROUP BY 学院.系名 与如上语句等价SQL语句是
【正确答案】
C
【答案解析】 [解析] 本题考查SQL实现连接操作的命令。SQL中实现连接的命令格式为: SELECT…FROM<表名> INNER JOIN<表名,ON<连接表达式>WHERE… 四个选项中,选项A缺少ON关键字,选项B的连接条件是错误的,不能仅以一个字段作为连接条件,选项D中的SQL语句相比缺少分组语句,因此选项C为正确答案。
单选题
有SQL语句: SELECT DISTINCT 系号 FROM 教师 WHERE 工资>=; ALL(SELECT 工资 FROM 教师 WHERE 系号 =“02”) 与如上语句等价的SQL语句是
【正确答案】
A
【答案解析】 [解析] 题干中的SQL语句的功能是:查询那些工资比02系工资都高的教师所在的系号,四个选项中只有选项A中的查询条件与此等价,用(SELECT MAX(工资)FROM…WHERE…)实现选择出最高工资,故选项A为正确答案。选项B的查询条件表示工资大于02系中工资最低的教师的工资,选项C和D中的州Y和SOME是同义词,表示查询出只要比02系中某一个教师工资高的记录即可。
提交答案
关闭