二级查询练习题答案(分类)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

注:蓝色字体说明是第二种做法。

一、基本查询

例1 从职工关系中检索所有工资值。

Select 工资from 职工表

例2 检索仓库关系中的所有元组。

Select * from 仓库表

二、条件查询

例3 检索工资多于1230元的职工号。

Select 职工号from 职工表where 工资>1230

例4 检索哪些仓库有工资多于1210的职工。

Select distinct仓库号from 职工表where 工资>1210

例5 给出在仓库“WH1”或“WH2”工作,并且工资少于1250的职工号。

做法1:Select 职工号from 职工表;

where 工资<1250 and (仓库号="WH1" or 仓库号="WH2")

做法2:Select 职工号from 职工表where 工资<1250 and 仓库号in ("WH1","WH2") 例6 找出工资多于1230元的职工号和他们所在的城市。

select 职工号,城市;

from 职工表,仓库表;

where 职工表.仓库号=仓库表.仓库号and 工资>1230

例7 检索出工资在1220元到1240元范围内的职工信息。

做法1:select * from 职工表where 工资between 1220 and 1240

做法2:select * from 职工表where 工资>=1220 and 工资<= 1240 例8 从供应商关系中检索出全部公司的信息,不要工厂或其他供应商的信息。

做法1:select * from 供应商表where 供应商名like "%公司"

做法2:select * from 供应商表where "公司" $ 供应商名

例9 找出不在北京的全部供应商信息。

select * from 供应商表where 地址<>"北京"

例10 找出尚未确定供应商的订购单。

select 订购单号from 订购单表where 供应商号is null

例11 列出已经确定了供应商的订购单信息。

select * from 订购单表where 供应商号is not null

三、多表查询

例12 找出工作在面积大于400的仓库的职工号以及这些职工工作所在的城市。

select 职工号,城市;

from 职工表,仓库表;

where 职工表.仓库号=仓库表.仓库号and 面积>400

例13 哪些城市至少有一个仓库的职工工资为1250元?

select 城市from 职工表,仓库表;

where 职工表.仓库号=仓库表.仓库号and 工资=1250

例14 查询所有职工的工资都多于1210元的仓库的信息。

select 仓库表.*;

from 职工表,仓库表;

where 职工表.仓库号=仓库表.仓库号;

group by 职工表.仓库号having min(工资)>1210

例15 求北京和上海的仓库职工的工资总和。

select sum(工资) as 总和from 职工表,仓库表;

where 职工表.仓库号=仓库表.仓库号and 城市in ("北京","上海")

四、嵌套查询

例16 哪些城市至少有一个仓库的职工工资为1250元?

方法1:

select 城市from 仓库表,职工表;

where 仓库表.仓库号= 职工表.仓库号AND工资=1250

方法2:

select 城市from 仓库表where 仓库号in;

(select 仓库号from 职工表where 工资=1250)

方法2:

SELECT 仓库表.城市;

FROM 查询练习!仓库表INNER JOIN 查询练习!职工表;

ON 仓库表.仓库号= 职工表.仓库号;

WHERE 职工表.工资= 1250

例17 查询所有职工的工资都多于1210元的仓库的信息。

select * from 仓库表;

where 仓库号in ;

(select 仓库号from 职工表group by 仓库号having min(工资)>1210) 例18 找出和职工E4挣同样工资的所有职工。

select 职工号from 职工表where 工资=;

(select 工资from 职工表where 职工号="E4") and 职工号<>"E4"

例19 求北京和上海的仓库职工的工资总和。

方法1: select sum(工资) as 总和from 职工表;

where 仓库号in (select 仓库号from 仓库表where 城市in ("北京","上海")) 方法2: select sum(工资) as 总和from 职工表, 仓库表;

where 职工表.仓库号= 仓库表.仓库号AND城市in ("北京","上海") 方法3: SELECT SUM(职工表.工资) AS 工资总和;

FROM 查询练习!仓库表INNER JOIN 查询练习!职工表;

ON 仓库表.仓库号= 职工表.仓库号;

WHERE 仓库表.城市IN ("北京","上海")

例20 求所有职工的工资都多于1210元的仓库的平均面积。

select avg(面积) from 仓库表where 仓库号in ;

(select 仓库号from 职工表group by 仓库号having min(工资)>1210) 例21 检索那些仓库中还没有职工的仓库的信息。

select * from 仓库表where 仓库号not in (select 仓库号from 职工表) 例22 检索那些仓库中至少已经有一个职工的仓库的信息。

select * from 仓库表where 仓库号in (select 仓库号from 职工表) 例23 检索所有职工的工资大于或等于WH1仓库中任何一名职工工资的仓库号。

方法1:select 仓库号from 职工表where 工资>= any;

(select 工资from 职工表where 仓库号="WH1") and 仓库号<>"WH1" distinct 方法2:select 仓库号from 职工表where 工资>= ;

(select min(工资)from 职工表where 仓库号="WH1") and 仓库号<>"WH1" distinct 例24 检索所有职工的工资大于或等于WH1仓库中所有职工工资的仓库号。

方法1: select 仓库号from 职工表where 工资>= all;

(select 工资from 职工表where 仓库号="WH1") and 仓库号<>"WH1" distinct 方法2: select 仓库号from 职工表where 工资>= ;

(select max(工资) from 职工表where 仓库号="WH1") and 仓库号<>"WH1" distinct

五、统计和分组统计

例25 找出供应商所在地的数目。

select count(distinct 地址) from 供应商表

例26 求支付的工资总数。

相关文档
最新文档