本文目的:

通过分析左连接(+)加号的写法和一些常用语法之间的联系,了解到Oracle 加号(+)的用法

分析步骤:

1.首先创建测试表的结构:

create table test_left_a (
a varchar2(50),
b varchar2(50)
)
create table test_left_b (
a varchar2(50),
b varchar2(50)
)

2.插入相应的测试数据:

insert into test_left_a select 'a','21' from dual;
commit;
insert into test_left_a select 'c','2111' from dual;
commit;

insert into test_left_b select 'a','12' from dual;
commit;
insert into test_left_b select 'b','13' from dual;
commit;

3.列举出实现左连接查询的几种常用的语法,以便对比分析

实现左连接查询(不加where)的几种语法:
A: 
select * from test_left_a a left join test_left_b b on a.a = b.a;

B: 
select * from test_left_a a, test_left_b b where a.a = b.a(+);

C:
select *
from test_left_a a
inner join test_left_b b on a.a = b.a(+);
实现左连接查询(加where)的几种语法: 
D:
select *
from test_left_a a
left join test_left_b b on a.a = b.a
where a.a = b.a;

E:
select *
from test_left_a a, test_left_b b
where a.a = b.a(+)
and a.a = b.a;

F:
select *
from test_left_a a
inner join test_left_b b on a.a = b.a(+)
and a.a = b.a;
G:
select *
from test_left_a a
inner join test_left_b b on a.a = b.a(+)
where a.a = b.a;

区分where的目的是为了由浅入深,避免在理解类似E写法的时候出现on的误导引起偏差

4.结论:

以上几种查询(暂不考虑性能,只考虑用法)
A等价于B等价于C
查询结果:
a 21 a 12
c 2111
D等价于E等价于F等价于G
查询结果:
a 21 a 12

5.温馨提示:

▶使用inner join的时候 直接在on后面写条件和在where后再写条件是一样的,原因是内连接是匹配出on条件为真的记录(参考F和G)。
▶使用left join或者right join的时候,直接在on后面写条件和在where后再写条件是不一样的,原因是:
  left join即使on后面的条件为假也会显示出左表的所有记录
  right join即使on后面的条件为假也会显示出右表的所有记录。

▶本文内容如有不妥之处,恳请指正。

Oracle 左连接(+)加号用法及常用语法之间的关系的更多相关文章

  1. Oracle学习笔记—Oracle左连接、右连接、全外连接以及(+)号用法(转载)

    转载自: Oracle左连接.右连接.全外连接以及(+)号用法 对于外连接,Oracle中可以使用“(+)”来表示. 关于使用(+)的一些注意事项: (+)操作符只能出现在WHERE子句中,并且不能与 ...

  2. Oracle左连接,右连接

    Oracle左连接,右连接 数据表的连接有: 1.内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2.外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制 ...

  3. Oracle左连接、右连接、全外连接以及(+)号用法(转)

    +:与附带的字段相连,和“+”相连的字段值,不管是否存在,都会展示 也就是带上相连接的字段 有数据了就显示,没数据就显示为null Oracle  外连接(OUTER JOIN) 左外连接(左边的表不 ...

  4. [转载]Oracle左连接、右连接、全外连接以及(+)号用法

    Oracle  外连接(OUTER JOIN) 左外连接(左边的表不加限制) 右外连接(右边的表不加限制) 全外连接(左右两表都不加限制) 对应SQL:LEFT/RIGHT/FULL OUTER JO ...

  5. Oracle左连接、右连接、全外连接以及(+)号用法

    1.准备工作 Oracle  外连接(OUTER JOIN)包括以下: 左外连接(左边的表不加限制) 右外连接(右边的表不加限制) 全外连接(左右两表都不加限制) 对应SQL:LEFT/RIGHT/F ...

  6. [转]Oracle左连接、右连接、全外连接以及(+)号用法

    原文地址:https://www.cnblogs.com/hehaiyang/p/4745897.html 阅读目录 1.准备工作 2.左外连接(LEFT OUTER JOIN/ LEFT JOIN) ...

  7. Oracle 左连接、右连接、全外连接、(+)号作用

    分类: Oracle Oracle  外连接 (1)左外连接 (左边的表不加限制)       (2)右外连接(右边的表不加限制)       (3)全外连接(左右两表都不加限制) 外连接(Outer ...

  8. Oracle 左连接、右连接、全外连接、(+)号作用、inner join(等值连接) (转载)

    Oracle  外连接 (1)左外连接 (左边的表不加限制)       (2)右外连接(右边的表不加限制)       (3)全外连接(左右两表都不加限制) 外连接(Outer Join) oute ...

  9. Oracle左连接、右连接、全外连接

    Oracle  外连接 (1)左外连接 (左边的表不加限制)(2)右外连接(右边的表不加限制)(3)全外连接(左右两表都不加限制) 外连接(Outer Join) outer join则会返回每个满足 ...

随机推荐

  1. ajax接收flask传递的json数据

    from flask import Flask, request import json app = Flask(__name__) @app.route('/') def func(): res = ...

  2. 手贱--npm 误改全局安装路径

    修改全局安装命令: 通过 npm config set prefix "目录路径" 来设置. 通过 npm config get prefix 来获取当前设置的目录. 我的node ...

  3. Flex和MyEclipse10整合时候需要注意的问题

    1.myeclipse和flex的位数要一致,不能混着安装 2.独立安装完Adobe Flash Builder 4.6 Installer之后,在其的安装文件夹下有一个utilities文件夹下有一 ...

  4. es6的一些基本语法

    首先说一下什么是es6: ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准; let 和 const 命令 let的基本用法: 上面代码在代码块之中,分别用l ...

  5. 139.00.009提高Github Clone速度

    @(139 - Environment Settings | 环境配置) Method 1 :SS+系统内置代理 用 git 内置代理,直接走系统中运行的代理工具中转,比如,你的 SS 本地端口是 1 ...

  6. Jmeter CSV 参数化/检查点/断言

    当参数的值没有规律且量不太大时,可以使用CSV Data set config这种方法. 案例: 应用Sogou自动搜索关键字: 软件开发测试,web功能自动化测试,性能自动化测试,Selenium以 ...

  7. 《C++ Primer Plus》读书笔记之——处理数据

    本文旨在记录在阅读<C++ Primer Plus>第五版的过程中,一些重点的知识点,方便以后查阅.本文将不断更新...... 一.第三章 处理数据 1.无符号整型不能存储负数值,其优点是 ...

  8. html5shiv.js和respond.js引入不起作用解决

    当项目需求需要兼容ie7,8这些奇葩浏览器时,考虑到h5的便捷性及响应式,我们往往引入html5shiv.js和respond.js来让ie7,8兼容h5及一些响应式变化,引入时就需要用到条件注释,原 ...

  9. 第五周 day5 python学习笔记

    1.软件开发的常规目录结构 更加详细信息参考博客:http://www.cnblogs.com/alex3714/articles/5765046.html         2.python中的模块 ...

  10. June 20th 2017 Week 25th Tuesday

    Care and diligence bring luck. 谨慎和勤奋,带来好运气. In my opinion, care and diligence may just gurantee us a ...