搜索
您的当前位置:首页正文

(仓库管理)数据库查询语句练习_习题_结果(单世民)仓库_习题

来源:爱go旅游网
数据库结构如下:

仓库(仓库号,城市,面积)

订购单(职工号,供应商号,订购单号,订购日期) 供应商(供应商号,供应商名,地址) 职工(仓库号,职工号,工资)

具体数据如下: 仓库表:

仓库号 城巾 北京 上海 广州 武汉 面积 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

结果:

因篇幅问题不能全部显示,请点此查看更多更全内容

Top