SQL中union(并集)、except(差集)、intersect(交集)用法,然而 mysql 不支持except 和 intersect

​​​​​​知识点:

  1. UNION返回两个结果集的并集。还有一个union all的用法(union没有包含重复列,union all 包含重复列)
  2. EXCEPT 返回两个结果集的差(即从左查询中返回右查询没有找到的所有非重复值(第一个表有,第二个表无))。
  3. INTERSECT 返回 两个结果集的交集(即两个查询都返回的所有非重复值)。

一.union 的用法

语法:
UNION 子句的基本语法如下所示:
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

UNION

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

例:
select test1_num,test1_address from test1
union
select test2_num,test2_address from test2;

解析:
在使用 UNION 的时候,每个 SELECT 语句必须有相同数量的选中列、相同数量的列表达式、相同的数据类型,并且它们出现的次序要一致,不过长度不一定要相同。
如:两个表查询的都是两列,即select语句有相同的数量的选中列;test1_num和test2_num都是相同的数据类型,且都是在查询的结果中第一个出现,即出现的次序要一致。

union all 的用法

UNION ALL 运算符用于将两个 SELECT 语句的结果组合在一起,重复行也包含在内。
UNION ALL 运算符所遵从的规则与 UNION 一致。
语法:

UNION ALL的基本语法如下:
    SELECT column1 [, column2 ]
    FROM table1 [, table2 ]
    [WHERE condition]

    UNION ALL

    SELECT column1 [, column2 ]
    FROM table1 [, table2 ]
    [WHERE condition]

二.except 的用法(同union)

语法:
EXCEPT 子句的基本语法如下所示:
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

EXCEPT

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

例:

第一步:建表,插入数据

表 t1

t1_numt1_name
4a
5b
6c
7null

表 t2

t2_numt2_name
6c
7null
8d
9e

 第二步:

select t1_num,t1_name from t1
except
select t2_num,t2_name from t2;

 结果:

t1_numt1_name
4a
5b

三.intersect 的用法(同union)

语法:
EXCEPT 子句的基本语法如下所示:
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

intersect

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

例:

select t1_num,t1_name from t1
intersect
select t2_num,t2_name from t2;

结果:

t1_numt1_name
6c
7null(这一行待就证)

 

 

  • 10
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值