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

相关推荐
闲云自留地几秒前
从结绳记事到 MySQL:数据库原理 + MySQL 基础一篇通
数据库·mysql
逃逸线LOF5 分钟前
Redis快速入门
数据库·redis·缓存
施嘉伟18 分钟前
Oracle 在线重定义卡了一个多小时:查不到阻塞会话
数据库·oracle
꯭自꯭闭꯭19 分钟前
达梦守护集群手工切换及故障切换
linux·运维·服务器·数据库
j7~22 分钟前
【Redis初阶】(篇二)《一文吃透 Redis:特性、应用场景、版本演进与安装配置全解析》
数据库·redis·缓存·redis的特性·redis的主要应用场景·redis重要文件及其作用·安装并启动redis
Elastic 中国社区官方博客1 小时前
使用 NVIDIA cuVS 在 Elasticsearch 中实现 GPU 加速的向量索引:在 10 分钟内处理 1.38 亿个向量
大数据·数据库·elasticsearch·搜索引擎·全文检索·安全威胁分析
我们从未走散1 小时前
AI 生图平台如何避免资损:用“扣款与凭据同事务”构建三态账本
开发语言·数据库·php
Shadow(⊙o⊙)2 小时前
MySQL复合查询
数据库·mysql
L·S·P7 小时前
25MB 管理 100+ 种数据库:开源轻量客户端 DBX 介绍与上手
数据库·mysql·开源·database·dbx
笃行3509 小时前
KingbaseES KSQL Developer 的连接管理、数据处理与对象管理
数据库