作业答案

更新时间:2024-04-09 09:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第二章课后作业

(1)查询在仓库WH2工作的职工的工资。

π职工号,工资(σ

仓库号=\

(职工))

(2)查询在上海工作的职工的工资。

π职工号,工资(σ

城市=\上海\

(仓库) * 职工) (仓库))

(3)查询北京的仓库面积

π仓库号,面积(σ

城市=\北京\

(4)查询所有职工的工资都大于1220元的仓库所在的城市。

π城市(仓库) -π城市(σ工资<=1220(职工) * 仓库)

(注意不能用: π城市(σ工资>1220(职工) * 仓库) )

因为有些仓库的职工的工资可以能有大于1220的也有小于等于1220)

(5)查询至少和职工E1、E4、E7都有联系的供应商的名称。

π供应商名(订购单÷(“E1”,”E4”,”E7”) * 供应商)

第六章课后作业

--(1)检索在北京的供应商的名称 select 供应商名 from 订货.供应商 where 地址='北京'

--(2)检索发给供应商s6的订购单号 select 订购单号 from 订货.订购单 where 供货方='s6'

--(3)检索出职工E6发给供应商S6的订购单信息

SELECT * FROM 订货.订购单 WHERE 供货方='S6'AND 经手人='E6'

--(4)检索出向供应商S3发过订购单的职工的职工号和仓库号 SELECT 职工号,仓库号 FROM 基础.职工 WHERE 职工号 IN ( SELECT 经手人 FROM 订货.订购单 WHERE 供货方='S3' )

--(5)检索出目前与S3供应商没有联系的职工信息 SELECT * FROM 基础.职工 WHERE 职工号 NOT IN

( SELECT 经手人 FROM 订货.订购单 WHERE 供货方='S3' )

--(6)检索出目前没有任何订购单的供应商信息 --existe嵌套查询方式:

SELECT * FROM 订货.供应商 WHERE NOT EXISTS

( SELECT * FROM 订货.订购单 WHERE 供货方=供应商.供应商号)

--用in的简单嵌套查询

select * from 订货.供应商 where 供应商号 not in

(select 供货方 from 订货.订购单 where 供货方=供应商.供应商号)

--(7)检索出和职工E1、E3都有联系的北京的供应商信息 select * from 订货.供应商 where 地址='北京'

and 供应商号 in (select 供货方 from 订货.订购单 where 经手人='E1') and 供应商号 in (select 供货方 from 订货.订购单 where 经手人='E3')

--(8)检索出目前和华通电子公司有业务联系的每个职工的工资 select 工资 from 基础.职工 where 职工号 in (select 经手人 from 订货.订购单 where 供货方 in

(select 供应商号 from 订货.供应商 where 供应商名='华通电子公司' ) )

--(9)检索出与工资在1220元以下的职工没有联系的供应商的名称 select distinct 供应商名,供应商号 from 订货.供应商

where 供应商号 not in --该供应商与“某些”职工没有联系 (select distinct 供货方 from 订货.订购单

where 经手人 in (select 职工号

from 基础.职工

where 工资<1220)

and供货方 is not null)

and 供应商号 in --表明该供应商有过订单

(select distinct 供货方 from 订货.订购单)

--(10)检索出向S4供应商发出订购单的仓库所在的城市 SELECT 城市 FROM 仓储.仓库 WHERE 仓库号 IN (SELECT 仓库号 FROM 基础.职工 WHERE 职工号 IN

(SELECT 经手人 FROM 订货.订购单 WHERE 供货方='S4'))

--(11)检索出在上海工作并且向S6供应商发出了订购单的职工号

SELECT 职工号 FROM 基础.职工 WHERE 仓库号 IN (SELECT 仓库号 FROM 仓储.仓库 WHERE 城市='上海') AND 职工号 IN

(SELECT 经手人 FROM 订货.订购单 WHERE 供货方='S6')

--(12)检索出在广州工作并且只向S6供应商发出了订购单的职工号 SELECT 职工号 FROM 基础.职工 WHERE 仓库号 IN (SELECT 仓库号 FROM 仓储.仓库 WHERE 城市='广州') AND

职工号 IN (SELECT 经手人 FROM 订货.订购单 WHERE 供货方='S6') AND

职工号NOT IN(SELECT 经手人 FROM 订货.订购单

WHERE 供货方!='S6')

--(13)检索出由工资多于1230元的职工向北京的供应商发出的订购单号 SELECT 订购单号 FROM 订货.订购单 WHERE 经手人 IN

(SELECT 职工号 FROM 基础.职工 WHERE 工资>1230) AND 供货方 IN

(SELECT 供应商号 FROM 订货.供应商 WHERE 地址='北京')

--14) 检索出仓库的个数。

SELECT COUNT(*) FROM 仓储.仓库

--15) 检索出有最大面积的仓库信息。

SELECT * FROM 仓储.仓库 WHERE 面积=(SELECT MAX(面积) FROM 仓储.仓库)

--16) 检索出所有仓库的平均面积。 SELECT AVG(面积) FROM 仓储.仓库

--17) 检索出向S4供应商发出订购单的那些仓库的平均面积。

SELECT AVG(面积) FROM 仓储.仓库 WHERE 仓库号 IN

(SELECT 仓库号 FROM 基础.职工 WHERE 职工号 IN (SELECT 经手人 FROM 订货.订购单 WHERE 供货方='S4'))

--18) 检索出每个城市的供应商个数。

SELECT 地址,COUNT(*) FROM 订货.供应商 GROUP BY 地址

--19) 检索出每个仓库中工资多于1220元的职工个数。

SELECT 仓库号,COUNT(*) FROM 基础.职工 WHERE 工资>1220 GROUP BY 仓库号

--20) 检索出和面积最小的仓库有联系的供应商的个数。

SELECT COUNT(*) FROM 订货.供应商 WHERE 供应商号 IN (SELECT 供货方 FROM 订货.订购单 WHERE 经手人 IN (SELECT 职工号 FROM 基础.职工 WHERE 仓库号 IN (SELECT 仓库号 FROM 仓储.仓库 WHERE 面积= (SELECT MIN(面积) FROM 仓储.仓库))))

--21) 检索出工资低于本仓库平均工资的职工信息。 SELECT * FROM 基础.职工 out WHERE 工资< (SELECT AVG(工资) FROM 基础.职工 inne

WHERE 仓库号=out.仓库号)

--通过给出一个out.仓库号,找到所有在同一个仓库工作的职工,近而对他们的工资做平均计算,得出平均值,再用out中每个职工的工资值来比对是否低于本仓库的工资平均值

本文来源:https://www.bwwdw.com/article/5i7r.html

Top