彻底理解Oracle中的集合操作与复合查询
2024-10-18 21:24:06
--Oracle中的复合查询
复合查询:包含集合运算(操作)的查询
常见的集合操作有:
union: 两个查询的并集(无重复行、按第一个查询的第一列升序排序)
union all:两个查询的并集(有重复行)
intersect:两个查询的交集(无重复行、按第一个查询的第一列升序排序)
minus: 两个查询的差集(无重复行、按第一个查询的第一列升序排序),取第一张表有而第二张表没有的所有记录 由于union、intersect、minus存在排序,故而对sql性能的影响很大,建议少用。 --测试
create table t1 (id number,name varchar2(20));
create table t2 (id number,name varchar2(20));
insert into t1 values(1,'表1');
insert into t1 values(2,'表1');
insert into t1 values(3,'表1');
insert into t1 values(4,'表1');
insert into t1 values(5,'表1');
insert into t2 values(3,'表2');
insert into t2 values(4,'表2');
insert into t2 values(5,'表2');
insert into t2 values(6,'表2');
insert into t2 values(7,'表2'); --查询t1和t2
SQL> select * from t1; ID NAME
---------- --------------------
1 表1
2 表1
3 表1
4 表1
5 表1 SQL> select * from t2; ID NAME
---------- --------------------
3 表2
4 表2
5 表2
6 表2
7 表2 --并集
--1.union
select id from t1
union
select id from t2 ; SQL> select id from t1
2 union
3 select id from t2 ; ID
----------
1
2
3
4
5
6
7 7 rows selected --2.union all
select id from t1
union all
select id from t2; SQL> select id from t1
2 union all
3 select id from t2; ID
----------
1
2
3
4
5
3
4
5
6
7 10 rows selected --交集
select id from t1
intersect
select id from t2; SQL> select id from t1
2 intersect
3 select id from t2; ID
----------
3
4
5 --差集
select id from t1
minus
select id from t2; SQL> select id from t1
2 minus
3 select id from t2; ID
----------
1
2
最新文章
- springmvc session和model解析
- 深入研究C语言 第二篇(续)
- iOS 杂笔-22(万年一遇~一张图片对代理的理解)
- linux基本使用(一)
- FusionCharts Free 注意事项
- Centos系统mysql 忘记root用户的密码:
- java 读取图片色深
- 用非GUI模式执行测试,jp@gc - PerfMon Metrics Collector会出现无法获取正确数据的解决办法
- Python爬虫7-Cookie &; Session
- super关键字访问父类成员
- JS-JS变量命名规则
- javaweb项目中遇到的一些乱码问题
- 使用gtest对DLL工程进行单元测试的实践
- MAC LINUX 安装PYQT(事例)
- mysql索引类型normal,unique,full text的区别
- sureface 屏幕残影问题官方解决方案 - 卸载显卡驱动
- Wavenet运行
- VK Cup 2016 - Qualification Round 2 C. Road Improvement dfs
- 用Linux中man命令查询C函数
- dsp5509的中断系统