Oracle中的union、union all、intersect、minus

所有学问都要先知其然,然后知其所有然。首先要清楚什么情况会用到这些关键字,比如:查询所有教师和同学的name、sex和birthday。其中这句话中代表要用一个查询语句实现查询教师表和学生表两个表的数据,我们可能会想到子查询,其实,没有那么复杂,这里运用union、union all、intersect、minus,就能轻轻松松解决这类问题!
四者的概念:
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All:对两个结果集进行并集操作,包括重复行,不进行排序;
Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
Minus:对两个结果集进行差操作不包括重复行,同时进行默认规则的排序。

四者集合属性分析:
union(去重并集)、union all(不去重并集)、intersect(交集)、minus(减集)
实例:
---- 查询所有教师和同学的name
select * from (select tname from teacher
union
select sname from student);

我觉得以文字的形式表达不及实际操作(强烈建议同学自己建两张简单的表测试

猜你喜欢

转载自blog.csdn.net/qq_44543508/article/details/88692029