当前位置:网站首页>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;
边栏推荐
- MongoDB文档存储
- ModuleNotFoundError No module named ‘xxx‘可能的解决方案大全
- Keil development environment installation tutorial
- LeetCode:1374. 生成每种字符都是奇数个的字符串【签到题】
- 一个资深测试工程师面试一来就问我这些题目
- Kubernetes 基本概念
- 我的两周年创作纪念日
- APK的安装过程分析 PMS包管理器
- 化学试剂磷脂-聚乙二醇-羟基,DSPE-PEG-OH,DSPE-PEG-Hydroxyl,MW:5000
- DSPE-PEG-Silane,DSPE-PEG-SIL,磷脂-聚乙二醇-硅烷修饰活性基团
猜你喜欢
随机推荐
赶紧进来!!!教你用C语言写三子棋小游戏
蓝鲸DevOps荣获平台类工具企业选择率第一
APK的安装过程分析 PMS包管理器
活体检测 Adaptive Normalized Representation Learning for GeneralizableFace Anti-Spoofing 阅读笔记
精益思想如何加速企业的全局价值流动?
MySQL删除表数据 MySQL清空表命令 3种方法
CV-Model [4]: MobileNet v3
Using WebShell to get Shell Skills
磷脂-聚乙二醇-巯基,DSPE-PEG-Thiol,DSPE-PEG-SH,MW:5000
聊聊flink的BoundedOutOfOrdernessTimestampExtractor
TRICK第二弹
Redis的集群模式
多个el-select下拉框无法选中相同内容
考虑饱和的多智能体系统数据驱动双向一致性
【C语言万字长文】 宏定义 结构体 共用体 内存对齐知识点总结
bgp机房的动态路由和静态路由的区别
mysql8.0安装教程与配置(最详细)操作简单
API 低代码开发:接口大师,一套开发、管理和提供接口的产品框架
Chapter 10 聚类
每日练习------有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数





![OD-Model [4]: SSD](/img/ad/4ffb3e56538aa38b03173d79d9d213.jpg)


