视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
sql多表连接查询
2025-10-02 14:56:04 责编:小OO
文档
 T-SQL多表连接查询

 

目标达成

1、掌握多表连接查询

1、

2、

3、

4、

5、

6、

7、

8、

9、

  2、掌握表格别名的应用

3、熟练UNION合并

10、

查询    

4、熟练嵌套查询

实训内容

导入实验自带的sales数据库,执行以下操作,记录相应的内容(1-4是多表连接查询):

供应表                                 职工表

                        

仓库表                                 订购单表

基于上述的4个表,完成下列操作(第10-12选做,不做检查内容):

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

或者使用先前的方法:

select 职工号,城市  

from 职工join 仓库

On 职工.仓库号=仓库.仓库号 

where 仓库.面积> 400

2、针对仓库和职工两个关系表,查询仓库号,城市,面积,职工号,工资,要求结果包含仓库表的全部。

select 仓库.仓库号,城市,面积,职工号,工资  

from 职工right join 仓库

On 职工.仓库号=仓库.仓库号 

3、针对仓库和职工两个关系表,查询仓库号,城市,面积,职工号,工资,要求结果包含职工表的全部,不满足条件的将以NULL显示。

select 职工.仓库号,城市,面积,职工号,工资  

from 职工left join 仓库

On 职工.仓库号=仓库.仓库号

4、针对仓库和职工两个关系表,查询两表的所有纪录。(另一个表满足连接条件的返回相应的值,不满足连接条件的返回NULL)

select 职工.仓库号,城市,面积,职工号,工资,仓库.仓库号

from 职工full join 仓库

On 职工.仓库号=仓库.仓库号

5、查询哪些城市至少有一个仓库的职工的工资为1250元?

select 城市

from  仓库

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

6、查询出和职工E4挣同样工资的所有职工。

select 职工号

from  职工

where 工资=(select 工资from 职工where 职工号='E4' )

7、检索有职工的工资大于或等于WH1仓库中任何一名职工的工资的仓库号。

select 仓库号

from 仓库

where 仓库号in (select 仓库号from 职工where 工资>= any(select 工资from 职工where 仓库号='WH1'))

8、检索有职工的工资大于或等于WH1仓库中所有职工的工资的仓库号。

select 仓库号

from  仓库

where 仓库号in (select 仓库号from 职工where 工资>= (select max(工资) from 职工where 仓库号='WH1'))

9、检索哪些仓库中至少已经有一个职工的仓库的信息。

select *

from 仓库

where 仓库号in (

 select 仓库号

from 职工

where 职工号is not null )

10.检索出与工资在1220元以下的职工没有联系的供应商的名称。

select 供应商名

from 供应

where 供应商号in (select 供应商号from 订购单where 职工号in (select 职工号from 职工where 工资< 1220))

11.删除由在上海仓库工作的职工发出的所有订购单。

Delete  from 订购单

Where 定单单号in (

select 定单单号

from 订购单

where 职工号in (select 职工号from 职工where 仓库号in (select 仓库号from 仓库where 城市= '上海')))

12.删除目前没有任何订购单的供应商。

Delete  from 订购单

Where 供应商号in (

select 供应商号

from 订购单

where 供应商号is  null )

select 职工号,城市 

from 职工join 仓库

On 职工.仓库号= 仓库.仓库号

where 仓库.面积> 400

select 仓库.仓库号,城市,面积,职工号,工资 

from  职工right join 仓库

On  职工.仓库号=仓库.仓库号

select 职工.仓库号,城市,面积,职工号,工资 

from  职工left join 仓库

On  职工.仓库号= 仓库.仓库号

select 职工.仓库号,城市,面积,职工号,工资,仓库.仓库号

from  职工full join 仓库

On  职工.仓库号=仓库.仓库号

select 城市

from  仓库

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

select 职工号

from  职工

where 工资=(select 工资from 职工where 职工号='E4' )

select 仓库号

from 仓库

where 仓库号in (select 仓库号from 职工where 工资>= any(select 工资from 职工where 仓库号='WH1'))

select 仓库号

from  仓库

where 仓库号in (select 仓库号from 职工where 工资>= (select max(工资) from 职工where 仓库号='WH1'))

select *

from 仓库

where 仓库号in (

select 仓库号

from 职工

where 职工号is not null )

select 供应商名

from 供应

where 供应商号in (select 供应商号from 订购单where 职工号in (select 职工号from 职工where 工资< 1220))

Delete  from 订购单

Where 定单单号in (

select 定单单号

from 订购单

where 职工号in (select 职工号from 职工where 仓库号in (select 仓库号from 仓库where 城市= '上海')))

Delete  from 订购单

Where 供应商号in (

select 供应商号

from 订购单

where 供应商号is  null )下载本文

显示全文
专题