一、内连接和外连接 
   内连接用于返回满足连接条件的记录;而外连接则是内连接的扩展,它不仅会满足连接条件的记录,而且还会返回不满足连接条件的记录,语法如下:

Oracle代码  
  1. select table1.column,table2.column from table1 [inner|left|right|full]join table2 on table1.column=table2.column;

inner join表示内连接、left join表示左外连接、right join表示右外连接、full join表示全连接;on用于指定连接条件。 
注意:如果使用form内、外连接,则必须使用on操作符指定连接条件;如果使用(+)操作符连接,则必须使用where指定连接条件。 
1、内连接 
   内连接查询返回满足条件的所有记录,默认情况下没有指定任何连接则为内连接,例如:

Oracle代码  
  1. select t1.name,t2.name from cip_temps t1 inner join cip_tmp t2 on t1.ID=t2.id;

2、左外连接 
左外连接查询不仅返回满足条件的所有记录,而且还会返回不满足连接条件的连接操作符左边表的其他行,例如:

Oracle代码  
  1. select t1.name,t2.name from cip_temps t1 left join cip_tmp t2 on t1.ID=t2.id;

3、右外连接 
右外连接查询不仅返回满足调价的所有记录,而且还会返回不满足连接条件的连接操作符右边表的其他行,例如:

Oracle代码  
  1. select t1.name,t2.name from cip_temps t1 right join cip_tmp t2 on t1.ID=t2.id;

4、全连接 
全连接查询不仅返回满足调价的所有记录,而且还会返回不满足连接条件的其他行,例如:

Oracle代码  
  1. select t1.name,t2.name from cip_temps t1 full join cip_tmp t2 on t1.ID=t2.id;

5、(+)操作符 
在oracle9i之前,当执行外连接时,都是使用连接操作符(+)来完成的,尽管可以使用操作符(+)执行外连接操作,但是oracle9i开始oracle建议使用outer join执行外连接,使用(+)操作符执行外连接的语法如下:

Oracle代码  
  1. select table1.column,table2.column from table1,table2 where table1.column(+)=table2.column;

注意:

  • 当使用(+)操作符执行外连接时,应当将该操作符放在显示较少行(完全满足连接条件行)一端。
  • (+)操作符只能出现在where子句中,并且不能与outer join语法同时使用。
  • 当使用(+)操作符执行外连接时,如果在where语句中包含多个条件,则必须在所有的条件中都包含(+)操作符。
  • (+)操作符只能适用于列,而不能适用于表达式。
  • (+)操作符不能与or和in操作符一起使用。
  • (+)操作符只能用于左外连接和右外连接,不能用于实现完全连接。

(1)、使用(+)操作符执行左外连接 
当使用左外连接时,不仅会返回满足连接条件的所有行,而且还会返回不满足连接条件的左边边的其他行。因为(+)操作符要放到行数较少的一端,所以在where子句中应当将该操作符放到右边表的一端,示例如下:

Oracle代码  
  1. select t1.name,t2.name from cip_temps t1,cip_tmp t2 where t1.ID=t2.id(+);

(2)、使用(+)操作符执行右外连接 
当使用右外连接时,不仅会返回满足连接条件的所有行,而且还会返回不满足连接条件的右边边的其他行。因为(+)操作符要放到行数较少的一端,所以在where子句中应当将该操作符放到左边表的一端,示例如下:

Oracle代码  

select t1.name,t2.name from cip_temps t1,cip_tmp t2 where t1.ID(+)=t2.id;

Oracle连接查询相关推荐

  1. oracle 连接查询--内连接与外连接

    一.外连接 oracle 连接查询分为外链接和内连接,我们先看外连接[outer join].oracle 的外连接查询分为: 左外连接 (左边的表不加限制) left outer join: 右外连 ...

  2. Oracle 连接查询的理解

    Oracle数据库的左连接和右连接 在Oracle PL-SQL中,左连接和右连接以如下方式来实现 查看如下语句: SELECT emp_name, dept_name FORM Employee, ...

  3. oracle 连接查询,子查询,分组函数

    1.oracle 连接查询 2.oracle 子查询 3.oracle 分组函数 3.1 3.2 rollup SQL> --group by 作用于多列,先按照第一列进行分组,如果相同,按照第 ...

  4. oracle连接查询详解

    连接查询是数据库查询语句中使用频率很高的查询方式,下面根据Oracle提供的官方文档学习一下连接查询. 一 Equijoins 等值连接 等值连接是条件连接在连接运算符为"="号时 ...

  5. Oracle 连接查询一

    为什么80%的码农都做不了架构师?>>>    在Oracle数据库中,连接查询分为交叉连接.内连接.外链接3种类型.其中,交叉连接结果是所有其他连接结果的超集,而外连接结果又是内连 ...

  6. oracle数据库 笛卡尔积,Oracle连接查询和笛卡尔积

    一.内连接和外连接 内连接用于返回满足连接条件的记录:而外连接则是内连接的扩展,它不仅会满足连接条件的记录,而且还会返回不满足连接条件的记录,语法如下: select table1.column,ta ...

  7. oracle左连接查询代码,ORACLE连接查询,内外连接

    事情的起源是这样子的: 在<剑破冰山>这本书里看到了一个用 where限制外连接的例子,当时不明白,查了下资料,做个总结. 测试代码. CREATE TABLE a (ID NUMBER, ...

  8. oracle 连接查询(内、外连接、自连接、子查询)

    内连接: 一般使用inner join来实现.其中inner关键字可以省略 同时必须在from子句之后定义一个on子句,用来指定连接条件 外连接 1 左外连接:关键字为left outer join或 ...

  9. oracle 自身连接查询,Oracle 连接查询

    结果如下图: 3.自身连接 自身连接是指在同一个表或者视图中进行连接,相当于同一个表作为两个或多个表使用. 例如:查询所有员工的员工号.员工名与该员工领导的员工名.员工号: select work.e ...

最新文章

  1. [深入React] 2.综述
  2. php中template函数,thinkPHP模板中函数的使用方法
  3. UESTC-1057 秋实大哥与花(线段树+成段加减+区间求和)
  4. c语言编程员工管理的代码,员工信息管理完整(含附源代码).doc
  5. 来聊一聊Cookie(小甜饼),及其涉及到的web安全吧
  6. Delphi从Internet下载文件
  7. paramiko 使用总结(SSH 操作远端机器)
  8. C++实现顺序串(完整代码)
  9. HDU 2089 不要62
  10. [Perforce]password (P4PASSWD) invalid or unset. 的错误解决
  11. 何时使用 Golang
  12. [转]js中escape,encodeURI,encodeURIComponent三个函数的区别
  13. this指向问题(call、apply、blind),自我理解的
  14. mysql binlog hdfs_Mysql binlog 之阿里canal
  15. 全面升级 | ONES Performance 研发效能管理解决方案
  16. vt版本不见了_王者荣耀VT版本玩法是什么?修改机型玩VT版方法是什么?
  17. c语言 误差函数erf代码,高斯(余补)误差函数erf和erfc
  18. 嵌入式linux usb联网,嵌入式linux下MF825C上网
  19. Vue子组件与父组件(看了就会)
  20. docker版MySQL经常性崩溃_mysql docker容器经常崩溃

热门文章

  1. Google ToolBar 3.0 Beta试用
  2. 『全球化产品』应该要避开的几个坑
  3. 懂你的推荐算法,你懂的
  4. 百万级微信服务号如何做活动运营和用户运营?
  5. 【独家】不懂逻辑怎么做PM,最详细产品逻辑课堂资料大公开!
  6. PMcaff-运营 | 用户运营中的认知丶考虑丶行动模型
  7. 蓝桥学院2019算法题1.3
  8. Fragment重影(重叠)白屏等问题原理解析,以及解决方案
  9. 部署安装kubernetes client-python,执行pip install setup.py时报错
  10. springboot项目打包成war并在tomcat上运行的步骤