以下四个题使用如下的“仓库”表和“职工”表,表结构如下: 仓库(仓库号C(3)、所在地C(8)、人数N(2)) 职工(仓库号C(3)、职工号C(2)、姓名C(8)、工资I)
单选题 检索有职工的工资大于或等于“WH1”仓库中所有职工“工资”的仓库号,正确的命令是( )。
【正确答案】 C
【答案解析】解析:选项C中的SQL语句通过子查询检索“WH1”仓库中所有职工的工资,然后在主查询中检索有职工工资大于二子查询所查的工资的记录,即大于所有WH1中所有职工工资的职工所在的仓库号,DISTINCT短语的功能是去掉查询结果中重复的记录。 在SQL语句中可以利用ANY、ALL等量词进行查询。其中,ANY(任意的)和SOME(一些)表示只要子查询中存在符合条件的行,结果就成立;而ALL(所有的)只有子查询中的所有的行都符合条件,结果才成立。
单选题 有如下SQL语句: INSERT INTO职工VALUES(“WH4”,“E15” ,“张清”,2800) 在命令窗口执行该命令后( )。
【正确答案】 D
【答案解析】解析:选项C中的SQL语句通过子查询检索“WH1”仓库中所有职工的工资,然后在主查询中检索有职工工资大于二子查询所查的工资的记录,即大于所有WH1中所有职工工资的职工所在的仓库号,DISTINCT短语的功能是去掉查询结果中重复的记录。 在SQL语句中可以利用ANY、ALL等量词进行查询。其中,ANY(任意的)和SOME(一些)表示只要子查询中存在符合条件的行,结果就成立;而ALL(所有的)只有子查询中的所有的行都符合条件,结果才成立。
单选题 检索最少有4名职工的仓库的职工平均工资( )。
【正确答案】 B
【答案解析】解析:本题中先由GROUP BY子句按“仓库号”对记录行进行分组;再执行COUNT()函数统计每组中有多少个记录,执行AVG()函数计算每个组的平均工资;最后执行HAVING子句,只有记录总数大于等于4的组才输出结果,即仓库职工在4名(含)以上的,注意,此时输出的组记录是计算后的记录,即每组只包含一条记录,输出信息包括该仓库的仓库号、人数和平均工资。
单选题 检索至少有一名职工信息的“仓库号”及仓库的“所在地”和“人数”,正确的SQL命令是( )。
【正确答案】 D
【答案解析】解析:本题中EXISTS属于SOL查询谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组,子查询要用圆括号括起来。选项D的SQL,查询中的予查询查询的是“职工”表中“仓库号”等于“仓库”表中“仓库号”的数据,然后在外层查询中检索“仓库”表中的“仓库号”是否存在于子查询的查询结果中,将存在的“仓库号”显示其“仓库号”、“所在地”和“人数”的信息。