--建表语句
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;