oracle中minus,union,union all,intersect的使用和区别

--建表语句
CREATE TABLE TABLE_A(
    ID NUMBER,
    NAME VARCHAR2(40),
    AGE NUMBER
);
CREATE TABLE TABLE_B(
    ID NUMBER,
    NAME VARCHAR2(40),
    AGE NUMBER
);
INSERT INTO TABLE_A VALUES (1,'Tom',22);
INSERT INTO TABLE_A VALUES (2,'LI',25);
INSERT INTO TABLE_A VALUES (3,'ZHAO',26);
INSERT INTO TABLE_A VALUES (4,'WANG',27);
INSERT INTO TABLE_A VALUES (5,'PL',15);
INSERT INTO TABLE_A VALUES (6,'HU',36);

INSERT INTO TABLE_B VALUES (1,'Tom',22);
INSERT INTO TABLE_B VALUES (2,'LI',25);
INSERT INTO TABLE_B VALUES (3,'ZHAO',26);
INSERT INTO TABLE_B VALUES (4,'WANG',27);
INSERT INTO TABLE_B VALUES (5,'PL',15);
INSERT INTO TABLE_B VALUES (6,'LISA',16);
COMMIT ;

MINUS
对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序

--取A表中有的数据且B表中没有的数据  去除重复数据   进行默认规则的排序
SELECT * FROM TABLE_A MINUS SELECT * FROM TABLE_B;

UNION
对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序

--取A表中全部数据和B表中全部数据  去除重复数据  会进行排序
SELECT * FROM TABLE_A UNION SELECT * FROM TABLE_B;

UNION ALL
对两个结果集进行并集操作,包括重复行,不进行排序

--取A表中全部数据和B表中全部数据  不去重  不进行排序
SELECT * FROM TABLE_A UNION ALL SELECT * FROM TABLE_B;

INTERSECT
对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序

--取A表和B表数据相同的数据   去除重复数据    会进行排序
SELECT * FROM TABLE_A INTERSECT SELECT * FROM TABLE_B;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值