当前位置:网站首页>oracle内连接和外连接
oracle内连接和外连接
2022-08-02 03:21:00 【Tom没Cat】
一、表的连接
1.内连接 (inner join)
做内连接得到的是a和b的关联关系的列同时存在的进行连接,内连后a和b关联列相同的a中数据和b中数据合在一起形成新的表数据。
内连接只有满足条件的数据才会显示
-- a 表和 b 表做内连接
-- a 表中的 bNO 和 b 表中的 NO 都不为 null 且a.bNo=b.NO 组成一条新数据。
SELECT * FROM a INNER JOIN b ON(a.bNO=b.NO);
等值连接也属于内连接
SELECT * FROM a, b WHERE a.nNO=b.NO;
2.外连接
2.1 左外连接(left outer join:简写为 left join)
左外连接是 a 表中的所有行都会显示,b表 中的对应数据添加在 a 表中的对应数据后面形成新的表数据。
-- a 表和 b 表做左连接
-- a 表中的所有列都会有,b 表中只有和 a 表中关联的数据才会跟在 a 表对应数据后面
SELECT * FROM a LEFT JOIN b ON(a.bNO=b.NO);
在 oracle 中左连接的另一种写法:
SELECT * FROM a, b WHERE a.bNO = b.NO(+);
2.2 右外连接(right outer join :简写为 right join)
右外连接与左外连接刚好相反, b表中的所有行都会显示,a 表 中的对应数据添加在 b 表中的对应数据后面形成新的表数据。
-- a 表和 b 表做右连接
-- b 表中的所有列都会有,a 表中只有和 b 表中关联的数据才会跟在 b 表对应数据后面
SELECT * FROM a RIGHT JOIN b ON(a.bNO=b.NO);
在 oracle 中右连接的另一种写法
SELECT * FROM a, b WHERE a.bNo(+) = b.NO;
2.3 全外连接(full outer join:简写为 full join)
a 表和 b 表中的数据都会显示
-- a 表和 b 表做全连接
-- a 表和 b 表中的数据都会显示
SELECT * FROM a FULL JOIN b ON(a.bNO=b.NO);
3、数据集合操作
3.1 union 和 union all (并集操作)
union 和 union all 都是将多个 select 查询得到的集合进行并集操作。
使用前提:
要使用 union 或者 union all 进行合并的多个 select 查询到的集合字段个数必须要一致,对应的字段类型也要一致。
二者的区别:
union 对合并后的结果进行了去重,union all 只是进行了合并,并没有对合并后的集合进行去重;
union 会将合并后的集合根据字段的顺序进行默认排序,union all 并不会进行排序;
注:
union 的效率比 union all 的效率低,所以,如果要对合并后的集合去重就使用 union,不进行去重操作就使用 union all;
--union:得到的结果只有前一半的 select 语句的值(进行了去重操作,并且还进行了默认的排序)
SELECT * FROM a UNION SELECT * FROM b;
--union all:得到的结果是两个select 语句合并在一起的集合(没有进行去重操作且没有进行排序)
SELECT * FROM a UNION ALL SELECT * FROM b;
3.2 intersect (交集操作)
intersect 操作是将多个 select 查询得到的集合进行交集操作
-- intersect:得到的是两个 select 语句的公共部分(即交集部分)
SELECT * FROM a INTERSECT SELECT * FROM b;
3.3 minus (差集操作)
minus 操作是将多个 select 插叙得到的差集进行交集操作
-- minus:得到的是前一个 select查询出来有并且后一个 select 没有的
SELECT * FROM a MINUS SELECT * FROM b;
边栏推荐
猜你喜欢
[详解C语言]一文带你玩转C语言小游戏---扫雷
Daily practice------There are n integers, so that the previous numbers are moved back m positions in order, and the last m numbers become the first m numbers
黑马案例--实现 clock 时钟的web服务器
OD-Model [4]: SSD
Redis安装,基本命令,持久化方式,集群
mysql8.0安装教程与配置(最详细)操作简单
浏览器的工作原理(dns域名服务器,tcp握手,ssl/tls安全协议,关键渲染路径,重绘及回流,防抖和节流)
About cross-domain issues
5. Hezhou Air32F103_LCD_key
(Repost) HashCode Summary (1)
随机推荐
Redis安装,基本命令,持久化方式,集群
ModuleNotFoundError: No module named ‘openpyxl‘
@Configuration详解
活体检测 Adaptive Normalized Representation Learning for GeneralizableFace Anti-Spoofing 阅读笔记
2022年比若依更香的开源项目
Good Key, Bad Key (thinking, temporary exchange, classic method)
JVM学习----垃圾回收--G1
mysql创建表
Freeswitch操作基本配置
OD-Model [4]: SSD
MySql创建数据表
About cross-domain issues
三维数字孪生引擎与实景互动,案例解析
EF Core:基于关系的复杂查询 区分IEnumerable和IQueryable
嵌入式分享合集25
mysql中json类型字段用法
磷脂-聚乙二醇-叠氮,DSPE-PEG-Azide,DSPE-PEG-N3,MW:5000
聊聊flink的BoundedOutOfOrdernessTimestampExtractor
基于优化的多核局部费舍尔判别分析的故障分类
MySQL中字符串比较大小(日期字符串比较问题)