Oracle 中 where 和 on 的区别

1.Oracle 中 where 和 on 的区别
on: 会先根据on后面的条件进行筛选,条件为真时返回该行,由于on的优先级高于left join,所以left join关键字会把左表中没有匹配的所有行也都返回,然后生成临时表返回,执行优先级高于left join。
**where:**对与行的筛选是在left join之后的,也就是生成临时表之后才会对临时表进行筛选,执行优先级低于left join。

1)、除表连接条件外,不包含emp表条件和where 条件

sql 复制代码
SELECT A.*, B.* FROM DEPT A LEFT JOIN EMP B ON a.deptno = b.deptno; 

2)、除表连接条件外,包含emp表条件

sql 复制代码
SELECT A.*, B.* FROM DEPT A LEFT JOIN EMP B ON a.deptno = b.deptno AND B.MGR IS NOT NULL;

3)、除表连接条件外,包含where条件

sql 复制代码
SELECT A.*, B.* FROM DEPT A LEFT JOIN EMP B ON a.deptno = b.deptno WHERE B.MGR IS NOT NULL;

2. 内连接和外连接的区别

内连接(inner join): 内连接是通过匹配两个表之间的共同列,返回满足连接条件的行。只有在连接条件匹配的情况下,才会返回结果。内连接只返回两个表中共同匹配的行,不包含任何不匹配的行。
**外连接(outer join):**外连接分为左外连接(Left Outer Join)、右外连接(Right Outer Join)和全外连接(Full Outer Join)三种类型。左外连接返回左表中的所有行,以及与右表匹配的行;右外连接返回右表中的所有行,以及与左表匹配的行;全外连接返回左表和右表中的所有行,不管是否匹配。

3.Oracle执行SQL流程图

相关推荐
张永清-老清3 分钟前
每周读书与学习->JMeter性能测试脚本编写实战(三)如何利用JMeter为MySQL数据库构造测试数据
数据库·测试工具·jmeter·压力测试·性能调优·jmeter性能测试·每周读书与学习
亮子AI8 分钟前
注册成功的提示信息怎么写?
数据库·python
Clang's Blog9 分钟前
使用 SQL Server Management Studio 还原 .bak 备份文件的完整指南
数据库·sqlserver
ybb_ymm10 分钟前
如何通过跳板机链接mysql数据库
数据库·mysql
繁依Fanyi10 分钟前
从初识到实战 | OpenTeleDB 安装迁移使用指南
开发语言·数据库·python
朱峥嵘(朱髯)14 分钟前
数据库如何根据估计 NDV,以及通过分区 NDV 推导全局 NDV
数据库·算法
7ioik14 分钟前
RC和RR隔离级别下MVCC的差异?
数据库·sql·mysql
高溪流18 分钟前
2.Mysql相关概念 及 数据库操作
数据库·mysql
Summer_Uncle23 分钟前
【QT学习】qt项目使用MySQL数据库
数据库·qt·学习
施嘉伟28 分钟前
Oracle 10046 Trace 硬核指南:SQL 慢在哪,从底层拉出来
数据库·sql·oracle