SQL多表连接查询

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

SQL多表连接查询与集合的并、交、差运算查询

e db_sqlserver2

2.select 姓名, 工资, 面积, 金额, (工资+金额/1000) as 实发工资 from 职工,仓

库, 订购单

3. where 职工.职工号=订购单.职工号and职工.仓库号=仓库.仓库号

1.select 姓名, 工资, 城市, (select AVG(工资) from 职工) as 平均工资 , (工资

-(select AVG(工资) from 职工)) as 与平均工资之差

2.from 职工, 仓库 where 仓库.仓库号=职工.仓库号

5:带保存功能的多表连接查询

在SQL语句中,利用into语句可以把查询到的结果保存成一张新表,然后再对新表进行数据信息查询。

1.select 仓库.仓库号, 城市, 面积, 姓名, 工资, 金额 into 多表连接产生的新

表 from 仓库, 职工, 订购单

2.where 仓库.仓库号=职工.仓库号and职工.职工号=订购单.职工号

1.select * from 多表连接产生的新表

//查看不同仓库中的所有职工的仓库号、平均销售金额、最大销售金额、最小销售金额、最大销售金额与最小销售金额之差的信息

[sql]view plaincopyprint?

1.select 仓库号, AVG(金额) as 平均销售金额, MAX(金额) as 最大销售金额, MIN(金

额) as 最小销售金额,

2.(MAX(金额) - MIN(金额)) as 最大金额与最小金额之差 from 多表连接产生的新

表 group by 仓库号;

可以把分组查询结果再生成一张新表

[sql]view plaincopyprint?

1.select 仓库号, AVG(金额) as 平均销售金额, MAX(金额) as 最大销售金额, MIN(金

额) as 最小销售金额,

2.(MAX(金额) - MIN(金额)) as 最大金额与最小金额之差 into 分组查询产生的新表

3. from 多表连接产生的新表 group by 仓库号;

4.

5. select * from 分组查询产生的新表

6:内连接查询(inner join)

使用比较运算符对表之间的某些数据进行比较,并列出这些表中与连接条件相匹配的数据行。[sql]view plaincopyprint?

1.select 姓名, 城市 from 仓库 inner join职工 on 职工.仓库号=仓库.仓库号

多表的内连接查询

[sql]view plaincopyprint?

1.select 城市,面积, 姓名, 工资, 金额 from 仓库

2. inner join职工 on 职工.仓库号=仓库.仓库号

3. inner join订购单 on 职工.职工号=订购单.职工号

4.and工资>1800 and面积<1000 and金额 != 16600

7:左连接查询(left join)

除满足连接条件的记录显示外,第一张表中不满足条件的记录也显示在结果集中。

1.select 姓名, 城市 from 仓库

2.left join职工 on 职工.仓库号=仓库.仓库号and城市 is not null and姓

名like '%王%'

[sql]view plaincopyprint?

1.select 城市, 面积, 姓名, 工资, 金额 from 仓库

2.left join职工 on 职工.仓库号 = 仓库.仓库号

3.left join订购单 on 职工.职工号=订购单.职工号

4.and工资>1800 and面积<1000 and金额!=16600

在第一个left join左连接中,第一张表是仓库表,第二张表是职工表,在第二个left join左连接中,第一张表是职工表,第二张表是订购单表

8:右连接查询

除满足连接条件的记录显示外,第二张表中不满足条件的记录也显示在查询结果集中

[sql]view plaincopyprint?

1.select 姓名, 城市 from 仓库

2.right join职工 on 职工.仓库号=仓库.仓库号 where 城市 is not null and姓

名like '%王%'

1.select 城市, 面积, 姓名, 工资, 金额 from 仓库

2.right join职工 on 职工.仓库号=仓库.仓库号

3.right join订购单 on 职工.职工号=订购单.职工号

4.and工资>1500 and面积<1000 and金额!=16600

1.select 城市, 面积, 姓名, 工资, 金额 from 仓库

2.right join职工 on 职工.仓库号=仓库.仓库号

3.right join订购单 on 职工.职工号=订购单.职工号

4. where 工资>1500 and面积

<1000 and金额!=16600

把and关键字换为where关键字后的效果图,会发现那些无用的数据没有了

9:全连接查询

除满足连接条件的记录显示外,两张表中的不能满足条件的记录也显示在查询结果集中

[sql]view plaincopyprint?

1.select 姓名,城市 from 仓库 full join职工 on 职工.仓库号=仓库.仓库号and城

市 is not null and

2.姓名like '%王%';

集合的交、并、差运算查询

相关文档
最新文档