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流程图

相关推荐
qq_330037991 分钟前
将数据库中的 UTC 时间准确转换为英国夏令时(BST)的 PHP 实现方法
jvm·数据库·python
2401_887724501 分钟前
mysql如何通过调整临时表空间配置优化查询_优化innodb_temp_data_file_path
jvm·数据库·python
qq_654366983 分钟前
如何配置Oracle环境变量_ORACLE_HOME与PATH路径映射
jvm·数据库·python
猿小喵4 分钟前
记录一次长时间未提交事务造成的慢SQL
数据库·sql·mysql
pele4 分钟前
bootstrap怎么实现带有验证状态的表单
jvm·数据库·python
上海合宙LuatOS5 分钟前
LuatOS扩展库API——【 lbsLoc2】免费版单基站定位
数据库·物联网·oracle·junit·lua·luatos
djjdjdjdjjdj7 分钟前
CSS实现图片中心剪裁定位_background-position center
jvm·数据库·python
智象科技10 分钟前
AI运维:人工智能如何改变传统IT运维
数据库·人工智能·自动化·一体化运维·ai运维
Wyz2012102410 分钟前
PyTorch bfloat16 张量转 NumPy 的正确方法与替代方案
jvm·数据库·python
天选之子12312 分钟前
Django模板(二)
数据库·django·sqlite