sql——集合运算


集合:表、视图、查询的执行结果称为集合

注意点

  1. 集合运算的记录的列数需一致
  2. 集合运算的运算对象中列的类型需一致
  3. 可以使用where、group by、having语句,但order by只能在最后一次select语句使用

集合运算的基本用法:

select1,2,...------------次数列数和对应列的类型(列1,列11的数据类型一致)须一致
	from1
集合运算符
select11,22,...
	from2

表的加减法

表的并(加法)——union

包含重复行:union all
两个表:
在这里插入图片描述

select 商品id,商品名称
 from Products
union
select 商品id,商品名称
 from Product2;

在这里插入图片描述

表的交(选取表的公共部分)——intersect

保留重复行:instersect all
AND应用于一张表,intersect应用于2个表

select 商品id,商品名称
 from Products
intersect   --------运算符
select 商品id,商品名称
 from Product2;

表的差——except

except相当于集合运算中的A-B(A交非B)

select 商品id,商品名称
 from Products
except  --------运算符
select 商品id,商品名称
 from Product2;

联结——join

——将表的列添加到另一个表中
导致列的变化
在这里插入图片描述

内联结——inner join

关键子句:

  1. from子句:from 表1 as 别名1 inner join 表2 as 别名2。把两个表连接在一起
  2. on子句:on 别名1.列名1=别名2.列名2。指定条件,即按哪列把2个表连在一起。
  3. select子句:select 别名1.列1,别名2.列2,...。指定联结后的新表需要显示的列指标
  • 内联结只会读取在2张表中都存在的列指标对应的行信息。
    例:从Products表中提取商品对应的商店信息
select sp.商店id,sp.商店名称,p.商品id,p.商品名称,p.销售单价
 from ShopProduct as sp inner join Products as p
	on p.商品id=sp.商品id
where sp.商店id='000A';-------也可指定条件,只显示部分符合条件的联结结果

在这里插入图片描述

在这里插入图片描述
如果后续想使用联结产生的表要创建视图,否则select语句执行后,表也不存在了

外联结——right/left outer join

  1. 当数据只存在于1张表时,外联结可以将其读取出来
  2. 主表用right、lift关键字指定
select sp.商店id,sp.商店名称,p.商品id,p.商品名称,p.销售单价
 from ShopProduct as sp right outer join Products as p
	on p.商品id=sp.商品id;

在这里插入图片描述

多张表的联结(>=3)

例:内连结

select 别名1.1,别名1.2,..,别名2.3,别名2.4,...,别名3.5,别名3.6	
  FROM1 as 别名1 inner join2 as 列名2 
	on 别名1.列名1=别名2.列名1	
		inner join3 as 列名3
			on 别名1.列名1=别名3.列名1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值