仓库(仓库号,城市,面积)
订购单(职工号,供应商号,订购单号,订购日期) 供应商(供应商号,供应商名,地址) 职工(仓库号,职工号,工资)
具体数据如下: 仓库表:
仓库号 城巾 北京 上海 广州 武汉 面积 WH1 WH2 WH3 WH4 370 500 200 400 订购单表: 职工号 供应商号 订购单号 订购日期 E3 E1 E5 E6 E3 E1 E3 供应商表: 供应商号 S7 S4 S4 S6 S4 S2 S3 S3 OR67 OR73 OR76 OR77 OR79 OR80 OR90 OR91 06/23/01 07/28/01 05/25/01 05/26/01 06/13/01 08/29/01 09/01/01 07/13/01 E3 供应商名 名硕电子公司 振华电子厂 华通电子公司 地址 苏州 四安 北京 郑州 北京 S2 S3 S4 S6 职仓库号 607厂 爱华电子厂 S7 工表职工号 工资 : WH2 WH1 WH2 WH3 WH1 E1 E3 E4 E5 E6 1220 1210 1250 1230 1250 使用 SQL 语 句完成:
1. 写出 命创建 令
table 仓库 ( 仓库号 上述create varchar ( 8) primary :
表的int ); 语句
create table 订购单varchar ( 8) primary
( nchar ( 8)) 应商varchar
订购单号 varchar ( 8) primary 号 tabl
DDL
key , 城市 varchar ( 8), 面积
key , 职工号 varchar ( 8 ), 供 key , 供应商名 varchar ( 18 ),
create 地址e ( 8), 订 varchar 购日期 create table key ,
仓库
int ) 供应商职工 ( 职工varchar ( 8) primary
DML ( 2. 给出插入上述数据的供应商号 insert 语句 命令:
( 8))
insert into仓库 values ( 'WH1' ,'
北京' , 370 ) insert into仓库 values ( 'WH2' ,'
上海' , 500 )
insert
into仓库 values ( 'WH3' ,'
广州' , 200 ) insert into仓库
values ( 'WH4' ,'
武汉' , 400 )
insert into 订购单 values ( 'OR67' , 'E3' , 'S7' , '06/23/01'
) insert into 订购单 values
( 'OR73' , 'E1' , 'S4' , '07/28/01' )
insert into 订购单 values ( 'OR76' , 'E5' , 'S4' , '05/25/01' ) insert into 订购单 values ( 'OR77' , 'E6' , 'S6' , '05/26/01' )
insert
into 订购单 values ( 'OR79' , 'E3' , 'S4' , '06/13/01' ) insert into 订购单 values ( 'OR80' , 'E1' , 'S2' , '08/29/01' ) insert into 订购单 values
( 'OR90' , 'E3' , 'S3' , '09/01/01' )
insert into
订购单
values ( 'OR91' , 'E3' , 'S7' , '07/13/01' )
' 名硕电子公司
insert
into 供应商 values ( 'S2' , '
, ' 苏州 ' )
insert into 供应商 values ( 'S3' ,
' 振华电子厂
insert into 供应商 values ( 'S4' , 西安 ' )
' 华通电子公司' ,
insert
into
供应商 values
( 'S6' , , ' 北京 ' ) '607 厂 ' , ' 郑
' ')
insert into
供应商
values ( 'S7' , 州
' 爱华电子厂北京 ' )
' ,
insert into职工 values ( 'E1' , 'WH2' , 1220 )
insert into职工 values ( 'E3' , 'WH1' , 1210 ) insert into职工 values ( 'E4' , 'WH2' , 1250 )
insert
into职工
values
( 'E5' , 'WH3' , 1230 ) insert
into职工 values ( 'E6' , 'WH1' , 1250 )
单表查询
3. 检索职工关系中的所有信息 命令: select * from 职工
结果:
varchar
工,
资
( 8)
4.
检索供应商关系中的所有信息 命令: select * from 供应商
结果:
5.
检索六月之后的所有订单 命令:
SELECT * FROM 订购单 WHERE DATEDIFF ( MONTH, '2001-06-01 00:00:00.000'
订购日期 )>= 0;
结果:
6.
检索面积大于
400 的仓库
命令: select * from 仓库 where 面积结果:
7.
检索哪些职工的工资多于
1210
>400
命令: select * from
职工 where 工资> 1210
8.
检索仓库是“
WH1 ”或“ WH2 ”并且面积大于 400 的城市
命令: select 城市 from 仓库 where 仓库号 ='WH1' and 面积城市 from 仓库 where 仓库号 ='WH2' and 面积 >400
结果:
9.
找出仓库面积在
400 到 600 的仓库
命令: select * from 仓库 where 面积 between 400 and 600
结果:
select
>400 union
10. 找出名中包含 “厂”的所有供应商的名
命令: select 供应商名
from 供应商 where 供应商名 like '% 厂 %
结果:
11. 找出不在西安的供应商
命令: select * from 供应商 except
select * from 供应商 where 地址 =' 西安者 :select * from 供应商 where
结果:
' 或 not 地址 =
' 西安 '
找出不在北京的仓库
命令: select * from 仓库 except select * from 仓库 where 城市 =' 结果:
按工资降序排列出所有职工的信息
命令: select * from 职工 order by 工资 desc
12.北京
13. 先按仓库号升序排列,再按工资降序排列
命令: select * from 职工 order by 仓库号 在仓库表中统计一下有几个仓库
命令: select COUNT(*) 仓库数 from 仓库
asc , 工资desc 结果:
14.
15. 在职工表中统计一下有几个仓库
命令: select COUNT( distinct 仓库号 ) 仓库数 from
结果:
求总的仓库面积
命令: select sum( 面积 ) 总面积 from 仓库
职工16.
17.聚合查询
18. 每个职工的订单数
命令:select 职工号,count (*)
命令:select 职工号,COUNT(*) COUNT(*)> 3
结果:
多表查询
订单数 from 订购单 group by 职工号
订单数 from 订购单 group by职工号 having
20. 找出在面积大于 400 的仓库中工作的职工
命令: select 职工号 from 职工 join 仓库 on 职工 . 仓库号 =仓库 . 仓库号 where 面
积 > 400
结果:
21. 找出在北京工作的职工和他们的工资情况
命令: select 职工号 , 工资 from 职工 join 仓库 on 职工where 仓库 . 城市 =' 北京 '
结果:
22. 找出工资大于 1215 的职工和他们所在的城市
命令: select 职工号 , 城市 from 职工 join 仓库 on 职工where 工资 > 1215
结果:
仓库号 = 仓库仓库号 = 仓库. 仓库号
. 仓库号
. . 子查询
23. 哪些城市至少有一个订单(从仓库角度考虑)
命令:select distinct 城市from 订购单 join 职工 工号join 仓库on职工.仓库号=仓库.仓库号 结果:
on订购单.职工号=职工.职
24. 找出没有任何订单的城市
命令: select 城市 from 仓库 except select distinct 职工on订购单.职工号=职工.职工号join 仓库on职工
城市 from
.仓库号=仓库.仓库号
订购单 join
结果:
RT 1
武汉
Ra>>>a>
■ 一
ns u>a
25. 找出和E4有同样工资的所有职工 命令:select b.职工号,b.仓库号,b.工资
from 职工a 工资where a.职工号='E4'
join 职工 b on a.工资=b.
结果:
26. 找出仓库面积大于 400 的仓库的所有职工
命令: select 职工 . 职工号 , 职工 . 仓库号 , 职工 . 工资 from 职工 join 仓库 on 职
工 .
仓库号
结果:
=仓库 . 仓库号 where 面积 >400
27. 找出供应商在西安的职工和他们的工资情况
命令: select 职工 . 职工号 , 工资 from 供应商 join
订购单 on 供应商 . 供应商号 =订
购单 . 供应商号
结果:
join 职工 on 订购单 . 职工号 = 职工 . 职工号 where 地址 =' 西安
28. 找出不在北京仓库里工作的职工
命令 select 职工号 , 工资 from 职工 join except
仓库 on 职工 . 仓库号 = 仓
select 职工号 , 工资 from 职工 join where 城市 库 . 仓库号
=' 北京 '
结果
29. 找出在北京仓库里工作的职工
命令 select 职工号 , 工资 from 职工 join 仓库 on 职工 . 仓库号 = 仓库 . 仓库号 where
城市 =' 北京 '
结果
30. 求广州和上海仓库职工的总工资
命令:select
SUM(工资)总工资from 职工join 仓库on职工.仓库号=仓库.仓库
号 where 城市='广州'or 城市='上海’
结果:
31. 求所有职工工资都大于 1210的仓库的平均面积
from (select 仓库号 from 职工 except
命令:select avg (面积)平均面积
select 仓库号 from 职工 where 工资<1210 ) a join 仓库 on a.仓库号=仓库.仓 库号
结果:
干典L理
1
356 I
32. 求上海仓库中职工的最高工资
命令:select MAX(工资)最高工资from 职工join 仓库on职工.仓库号=仓库.仓 库号 where 城市='上海' 结果:
33. 订单数大于或等于 2 的职工的工资
命令: select a . 工资 from ( select 职工 . 职工号 , 工资 from 职工 join 订购单 on
职工 . 职工号 =订购单 . 职工号 group by 职工 . 职工号 , 工资 having COUNT(*)>= 2 ) a
结果:
因篇幅问题不能全部显示,请点此查看更多更全内容