计算机二级

检索至少有一名职工信息的“仓库号”及仓库的“所在地”和“人数”,正确的SQL命令是( )。A)SELECT仓库号,所在地,人数FROM仓库WHERE IN;(SELECT仓库号FROM职工WHERE仓库号=职工.仓库号)B)SELECT仓库号,所在地,人数FROM仓库WHERE仓库号IN;SELECT仓库号FROM职工WHERE仓库号=仓库.仓库号C)SELECT仓库号,所在地,人数FROM仓库WHERE NOT EXISTS;(SELECT仓库号FROM职工WHERE仓库号=仓库.仓库号)D)SELEC

题目

检索至少有一名职工信息的“仓库号”及仓库的“所在地”和“人数”,正确的SQL命令是( )。

A)SELECT仓库号,所在地,人数FROM仓库WHERE IN;

(SELECT仓库号FROM职工WHERE仓库号=职工.仓库号)

B)SELECT仓库号,所在地,人数FROM仓库WHERE仓库号IN;

SELECT仓库号FROM职工WHERE仓库号=仓库.仓库号

C)SELECT仓库号,所在地,人数FROM仓库WHERE NOT EXISTS;

(SELECT仓库号FROM职工WHERE仓库号=仓库.仓库号)

D)SELECT仓库号,所在地,人数FROM仓库WHERE EXISTS;

(SELECT仓库号FROM职工WHERE仓库号=仓库.仓库号)

参考答案和解析
正确答案:D
本题中EXISTS属于SQL查询谓词, EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组,子查询要用圆括号括起来。选项D)的SQL查询中的子查询查询的是“职工”表中“仓库号”等于“仓库”表中“仓库号”的数据,然后在外层查询中检索“仓库”表中的“仓库号”是否存在于子查询的查询结果中,将存在的“仓库号”显示其“仓库号”、“所在地”和“人数”的信息。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有“仓库”表和“职工”表,检索仓库中基本工资大于3000元的职工姓名和他们所在的仓库名

A.SELECT姓名,仓库名FROM职工; WHERE基本工资>3000

B.SELECT姓名,仓库名FROM仓库; WHERE基本工资>3000

C.SELECT姓名,仓库名FROM职工,仓库; WHERE(基本工资>3000)OR(职工.仓库号=仓库.仓库号)

D.SELECT姓名,仓库名FROM职工,仓库; WHERE(基本工资>3000)AND(职工.仓库号=仓库.仓库号)


正确答案:D
解析:本题中SQL查询属于多表联接查询,注意条件中关联字段的选取以及逻辑条件的设置。选项A)和选项B)中都缺少查询的数据表,且查询条件有误;选项C)中查询条件错误,应使用AND进行条件连接,而不是OR。

第2题:

检索有职工的工资大于或等于“WH1”仓库中所有职工“工资”的仓库号,正确的命令是( )。

A.SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资>=ANY; (SELECT MAX(工资) FROM 职工 WHERE 仓库号="WH1")

B.SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资>=ANY; (SELECT 工资 FROM 职工 WHERE 仓库号="WH1")

C.SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资>=ALL; (SELECT 工资 FROM 职工 WHERE 仓库号="WH1")

D.SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资>=ALL; (SELECT MAX(工资) FROM 职工 WHERE 仓库号="WH1")


正确答案:C
解析:本题的SQL语句功能是检索有职工工资大于等于仓库号“WH1”中所有职工工资的仓库号。本题中通过子查询检索“WH1”仓库中所有职工的工资,然后在主查询中检索有职工工资大于子查询所查的工资记录,即大于所有“WH1”中所有职工工资的职工所在的仓库号,DISTINCT短语的功能是去掉查询结果中重复的记录。
在SQL语句中可以利用ANY、ALL等量词进行查询。基本格式为:表达式>比较运算符 >[ANY|ALL|SOME](子查询)。
其中,ANY(任意的)和SOME(一些)表示只要子查询中存在符合条件的行,结果就成立;而ALL(所有的)只有子查询中的所有的行都符合条件,结果才成立。

第3题:

检索在广州仓库工作的职工记录,要求显示职工号和工资字段,正确的命令是

仓库表

仓库号 所在城市

A1 北京

A2 上海

A3 天津

A4 广州

职工表

职工号 仓库号 工资

M1 A1 2000.00

M3 A3 2500.00

M4 A4 1800.00

M5 A2 1500.00

M6 A4 1200.00

A.SELECT 职工号,工资 FROM 职工表; WHERE 仓库表.所在城市="广州"

B.SELECT 职工号,工资 FROM职工表; WHERE 仓库表.仓库号=职工表.仓库号; AND 仓库表.所在城市="广州"

C.SELECT 职工号,工资 FROM 仓库表,职工表; WHERE 仓库表.仓库号=职工表.仓库号; AND 仓库表.所在城市="广州"

D.SELECT 职工号,工资 FROM 仓库表,职工表; WHERE 仓库表.仓库号=职工表.仓库号; OR 仓库表.所在城市="广州"


正确答案:C
解析:本题中,通过仓库号字段将仓库表和职工表进行联接,查询仓库所在地是"广州"的记录。

第4题:

求至少有两个职工的每个仓库的平均工资

A.SELECT 仓库号,COUNT(*),AVG(工资)FROM 职工表; HAVING COUNT(*)>=2

B.SELECT 仓库号,COUNT(*),AVG(工资)FROM 职工表; GROUP BY 仓库号 HAVING COUNT(*)>=2

C.SELECT 仓库号,COUNT(*),AVG(工资)FROM 职工表; GROUP BY 仓库号 SET COUNT(*)>=2

D.SELECT 仓库号,COUNT(*),AVG(工资)FROM 职工表; GROUP BY 仓库号 WHERE COUNT(*)>=2


正确答案:B
解析:本题利用SQL分组查询的功能,计算至少有两个职工的每个仓库的平均工资,利用HAVING子句可以对分组条件做进一步限定。

第5题:

检索至少有一名职工信息的“仓库号”及仓库的“所在地”和“人数”,正确的SQL命令是( )。

A.SELECT 仓库号,所在地,人数 FROM 仓库 WHERE IN; (SELECT 仓库号 FROM 职工 WHERE 仓库号=职工.仓库号)

B.SELECT 仓库号,所在地,人数 FROM 仓库 WHERE 仓库号 IN; SELECT 仓库号 FROM 职工 WHERE 仓库号=仓库.仓库号)

C.SELECT 仓库号,所在地,人数 FROM 仓库 WHERE NOT EXISTS; (SELECT 仓库号 FROM 职工 WHERE 仓库号=仓库.仓库号)

D.SELECT 仓库号,所在地,人数 FROM 仓库 WHERE EXISTS; (SELECT 仓库号 FROM 职工 WHERE 仓库号=仓库.仓库号)


正确答案:D
解析:本题中EXISTS属于SQL查询谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组,子查询要用圆括号括起来。本题SQL查询中的子查询查询的是“职12”表中“仓库号”等于“仓库”表中“仓库号”的数据,然后在外层查询中检索“仓库”表中的“仓库号”是否存在与子查询的查询结果中,将存在的“仓库号”显示其“仓库号”、“所在地”和“人数”的信息。

第6题:

检索那些城市至少有一个仓库的职工年龄在60以上,正确的命令是( )。

A.SELECT 城市 FROM 仓库 WHERE 仓库号 IN; SELECT 仓库号 FROM 职工 WHERE 年龄>60

B.SELECT 城市 FROM 仓库 WHERE 仓库号 IN; (SELECT 仓库号 FROM 职工 WHERE 年龄>60)

C.SELECT 仓库号 FROM 职工 WHERE 年龄>60 IN; SELECT 城市 FROM 仓库 WHERE 仓库号

D.SELECT 仓库号 FROM 职工 WHERE 年龄>60 IN; (SELECT 城市 FROM 仓库 WHERE 仓库号)


正确答案:B
解析:本题考查的是SQL数套查询。该查询功能是通过于查询查找有职工年龄在60岁以上的仓库号集合,然后在主查询中查找仓库号在这个集合中的记录,输出该仓库的城市信息,IN相当于集合运算符E。

第7题:

检索最少有4名职工仓库的职工平均工资( )。

A.SELECT 仓库号,COUNT(*) AS人数,AVG(工资) AS 平均工资 FROM 职工; GROUPBY 仓库号 WHERE COUNT(*)>=4

B.SELECT 仓库号,COUNT(*) AS人数,AVG(工资) AS 平均工资 FROM 职工; GROUPBY 仓库号 HAVING COUNT(*)>=4

C.SELECT 仓库号,COUNT(*) AS人数,AVG(工资) AS 平均工资 FROM 职工; GROUPBY 职工号 WHERE COUNT(*)>=4

D.SELECT 仓库号,COUNT(*) AS人数,AVG(工资) AS 平均工资 FROM 职工; GROUPBY 职工号 HAVING COUNT(*)>=4


正确答案:B
解析:在分组与计算查询语句中,使用HAVING子句可以对分组进一步加以控制。用这个子句定义这些组所必须满足的条件,以便将其包含在结果中,HAVING子句必须与GROUP BY短语同时使用。本题中先由GROUP BY子句按“仓库号”对记录行进行分组;再执行COUNT()函数统计每组中有多少个记录,执行AVG()函数计算每个组的平均工资;最后执行 HAVING子句,只有记录总数大于等于4的组才输出结果,即仓库职工在4名(含)以上的。注意:此时输出的组记录是计算后的记录,即每组只包含一条记录,输出信息包括该仓库的仓库号、人数和平均工资。

第8题:

检索那些城市至少有一个仓库的职工年龄在60以上的正确语句是( )。

A.SELECT城市FROM仓库WHERE仓库号 IN; SELECT仓库号FROM职工WHERE年龄>60

B.SELECT城市FROM仓库WHERE仓库号 IN; (SELECT仓库号FROM职工WHERE年龄>60)

C.SELECT仓库号FROM职工WHERE年龄>60 IN; SELECT城市FROM仓库WHERE仓库号

D.SEIECT仓库号FROM职工WHERE年龄>60IN; (SELECT城市FROM仓库WHERE仓库号)


正确答案:B
解析:本题考查的是SQL数套查询。该查询功能是通过子查询查找有职工年龄在60岁以上的仓库号集合,然后在主查询中查找仓库号在这个集合中的记录,输出该仓库的城市信息,IN相当于集合运算符∈。

第9题:

利用SQL语句,检索仓库中至少有一名职工的仓库信息,正确的命令是______.

A.SELECT。FROM仓库表WHEREIN; (SELECT仓库号FROM职工表)

B.SELECT 2p FROM仓库表WHERENOTm; (SELECT仓库号FROM职工表)

C.SELECT::FROM仓库表WHERE仓库号EXISTS; (SELECT*FROM职工表WHERE仓库号:仓库表.仓库号)

D.SELECT*FROM仓库表WHEREEXISTS; (SEL。E(:T*FROM职工表WHERE仓库号:仓库表.仓库号)


正确答案:D
解析:利用EXISTS或NOTEXISTS,可用来检查在子查询中是否有结果返回。利用运算符IN来表示,可写成如下格式: SELECT*FROM仓库表WHERE仓库IN; (SELECT仓库号FROM职工表)

第10题:

检索最少有4名职工仓库的职工平均工资的语句为( )。

A.SELECT 仓库号,COUNT(*) AS人数,AVG(工资) AS 平均工资 FROM 职工; GROUPBY 仓库号 WHERE COUNT(*)>=4

B.SELECT 仓库号,COUNT(*) AS人数,AVG(工资) AS 平均工资 FROM 职工; GROUPBY 仓库号 HAVING COUNT(*)>=4

C.SELECT 仓库号,COUNT(*) AS人数,AVG(工资) AS 平均工资 FROM 职工; GROUPBY 职工号 WHERE COUNT(*)>=4

D.SELECT 仓库号,COUNT(*) AS人数,AVG(工资) AS 平均工资 FROM 职工; GROUPBY 职工号 HAVING COUNT(*)>=4


正确答案:B
解析:在分组与计算查询语句中,使用HAVING子句可以对分组进一步加以控制。用这个子句定义这些组所必须满足的条件,以便将其包含在结果中,HAVING子句必须与GROUP BY短语同时使用。本题中先由GROUP BY子句按“仓库号”对记录行进行分组:再执行COUNT()函数统计每组中有多少个记录,执行AVG()函数计算每个组的平均工资;最后执行HAVING子句,只有记录总数大于等于4的组才输出结果,即仓库职工在4名(含)以上的。注意:此时输出的组记录是计算后的记录,即每组只包含一条记录,输出信息包括该仓库的仓库号、人数和平均工资。

更多相关问题