- 浏览: 159153 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
liuyutingat163:
建议参考一篇更详细jdk安装和环境变量配置的教程jdk环境变量 ...
JDK1.6 tomcat 6.0环境变量配置 -
sessionsong:
学习了!O(∩_∩)O谢谢
JS 获取本地文件夹的文件列表[转] -
阿图是会飞的猪:
Mark,正在用这个控件
DevExpress控件之XtraTreeList -
yhjhoo:
太骗人了!第二步中的工具根本就不工作
GeoServer+MySQL安装及配置过程 -
念Queen:
解决不了问题
JS关闭当前窗口代码
对于外连接,Oracle中可以使用“(+)”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍。 外连接: Oracle 建议你用在From语句后用Outer Join语法 而不是Oracle的Join操作符(+).而且(+)是要受下面的规则限制的,但Outer Join语法则不受的~~
1. LEFT OUTER JOIN:左外关联
FROM employees e
LEFT OUTER JOIN departments d
ON (e.department_id = d.department_id);
等价于
FROM employees e, departments d
WHERE e.department_id=d.department_id(+);
结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。
2. RIGHT OUTER JOIN:右外关联
FROM employees e
RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id);
FROM employees e, departments d
WHERE e.department_id(+)=d.department_id;
结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。
3. FULL OUTER JOIN:全外关联
FROM employees e
FULL OUTER JOIN departments d
ON (e.department_id = d.department_id);
除了显示匹配相等连接条件的数据外,还可以显示某一个表中无法匹配相等连接条件的记录!
------------------------------------------------
1) 左条件(+) = 右条件
左条件所在的表必须严格进行相等连接条件的匹配,而右条件所在的表除了匹配相等连接条件外,还可以显示无法匹配连接条件的数据!
也称为右外连接.
--------------------------------
可以用下列语句取代:
SELECT...FROM 表1 RIGHT OUTER JOIN 表2 ON 条件;
2) 左条件 = 右条件(+)
右条件所在的表必须严格进行相等连接条件的匹配,而左条件所在的表除了匹配相等连接条件外,还可以显示无法匹配连接条件的数据!
也称为左外连接.
--------------------------------
可以用下列语句取代:
SELECT...FROM 表1 LEFT OUTER JOIN 表2 ON 条件;
REM 除了相等连接之外,显示没有员工的部门信息.
SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO(+) = DEPT.DEPTNO;
SELECT * FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
REM 除了相等连接之外,显示没有部门的员工信息.
SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO(+);
SELECT * FROM EMP LEFT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
1)你不可以在查询块中使用(+) 当它同时包含 join的from语句中
2)(+)只是在where语句中,并且只能对应一个表或视图的一行字段
3)如果A和B做联接时有多个条件,那么(+)必须完善所有的匹配条件,
如果没有 ,oracle不会警告你~只是结果自然不同的
4)不可以在作出一个表外查询 另张表内查询的(+)联接操作~~
5)不可以用(+)外联接到自己 当然Self Join是可以的
6)含(+)的Where后的注意
OR不可用
IN不可用
子查询不可用
以下给些个例子:
现在的Outer Join方法是Oracle9i时开始引用的 ANSI标准的联接语法,现在的则比较直观 简单
通过上边Full Join的实现方式 不难看到ANSI的联接语法要比用含Union的(+)的执行效率更高~~
更详细的解释 请阅读Oracle原版ENGLISH VERSION HELP
发表评论
-
db2常用SQL函数[转]
2011-04-08 15:39 3104一、字符转换函数 1、ASCII() 返回字符表达式最 ... -
Access Insert Into 语法错误
2010-12-31 14:35 2729最近在做Access的一个项目,总是莫名其妙的提示:“In ... -
内连接与外连接的区别
2010-12-29 11:31 1211两个表的连接,是通过将一个表中的一列或者多列同另一个表中的列链 ... -
Oracle 树查询 性能优化纪实(start with, connect by)
2010-12-08 17:36 1297在项目中做权限控制时,需要用组织阶层来控制能够访问的数据, ... -
grant connect,resource to user包括的权限
2010-12-03 17:59 1797CONNECT角色: --是授予最终用户的典型权利 ... -
Oracle 10g 完全卸载
2010-12-03 14:37 895软件环境: 1、Windows XP + Oracle 1 ... -
Oracle使用技巧及PL/SQL Developer配置
2010-12-03 10:27 1683PL/SQL Developer使用技巧 1、PL ... -
用SQL Server日期函数获得一个月中天数的方案
2010-12-01 14:49 1677此文主要向大家描述的是SQL Server日期函数之获得一 ... -
oracle修改表增加列删除列修改列
2010-11-16 10:56 1128tag:oracle修改表;sql增加列;sql删除列; ... -
Oracle系统表查询
2010-11-16 10:43 702数据字典dict总是属于Oracle用户sys的。 1、用户: ... -
oracle import/export 命令
2010-11-04 10:45 2749exp/imp 实例 exp help=y ... -
oracle利用批处理文件执行SQL语句,bat连接oracle数据库并执行语句
2010-11-02 22:04 5389首先建立一个文本文件,里边写上 Sql代码 ... -
oracle 构造添加字段的SQL语句
2010-10-27 10:31 1669用ORACLE数据库,在其中一个表最后添加了两个字段 1、 ... -
Oracle创建删除用户、角色、表空间、导入导出、...命令总结【转】
2010-10-23 15:41 1626//创建临时表空间 create ... -
oracle 存储过程的基本语法 及注意事项
2010-10-22 18:56 581oracle 存储过程的基本语法 1.基本结构 CREAT ... -
[转]mysql的top n查询
2010-09-09 10:19 1357我们知道,在ms sql server中或access中,若要 ... -
用sqlplus远程连接oracle命令
2010-07-23 17:46 2740语法:sqlplus usr/pwd@//host:port/ ... -
oracle 创建表空间
2010-07-23 15:57 1036创建表空间 create tablespace MOF ... -
ORACLE 函数
2010-07-22 11:36 6991.ASCII 返回与指定的字符对应的十进制数; SQL& ... -
Oracle新手最常碰到的6个错误及解决方案
2010-06-24 10:50 761没有人会否认ORACLE ...
相关推荐
十分简洁的一个oracle链接,内附驱动,并且有关于Tomcat连接池的使用方法。
您可能感兴趣的文章:常用的Oracle doc命令(收藏)Oracle 多行记录合并/连接/聚合字符串的几种方法Oracle中字符串连接的实现方法php连接oracle数据库及查询数据的方法plsql连接oracle数据库报ora 12154错
C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法C#中连接oracle连接方法
本文详细介绍和阐述了 Oracle的连接和使用方法,并对连接和使用过程中的注意事项、关键知识点等进行了重点标注和详尽解析,以便于读者进行深入学习和理解。本文在作者测试通过的基础上,采用图文相结合的格式和方式...
通过分析左连接(+)加号的写法和一些常用语法之间的联系,了解到Oracle 加号(+)的用法。本文重点给大家介绍Oracle 左连接(+)加号用法及常用语法之间的关系 ,感兴趣的朋友跟随小编一起看看吧
python-oracledb的源码和使用示例代码, python-oracledb 1.0,适用于Python versions 3.6 through 3.10. Oracle Database; This directory contains samples for python-oracledb. 1. The schemas and SQL ...
我见过最好的Oracle数据库连接组件,性能和效率甚至比官方的高,最爽的是它不需要安装Oracle客户端即可连接数据库。赶快破解了献给大家,希望大家喜欢。使用方法:一、不用安装,直接使用破解文件夹中的组件,使用...
本文记录了第一次使用LabVIEW的DCT工具连接远程数据库Oracle 11g的方法。
C#连接Oracle的快速方法,使用Oracle.ManagedDataAccess的综合教程,全开源 1)直接输入Oracle数据库IP\用户名、密码等信息,就可以连接数据库 2)已经写好了一个操作类OracleHelper,可以非常方便的操作数据库返回...
delphi与ORACLE数据库连接控件odac 安装说明 1.找到ODAC_5.70.0.30_FS\Source\Delphi7. 2.Make.bat右键编辑,填入delphi7安装路径. 3.然后运行Make.bat生成bpl文件. 注意: 在安装的时候会出现一个错误: [Fatal ...
PLSQL工具和oracle客户端的连接方法 适用于新手安装oracle客户端之后,无法配置oracle监听端口和服务的使用
c#连接oracle方法 本地无需安装oracle 内有文档说明 Oracle.ManagedDataAccess.dll
数据仓库技术是目前已知的比较成熟和被广泛采用的解决方案,用于整和电信运营企业内部所有分散...本文着重分析ORACLE SQL优化中对于系统性能影响极大的表连接方式、特点、适用范围,并对如何使用和优化做了详细的探讨。
免安装Oracle客户端使用PLSQL连接Oracle的2种方法 很好用的
本文将主要从以下几个典型的例子来分析Oracle表的几种不同连接方式。
Navicat所依赖instantclient_12_2及使用方法,用于连接oracle12c、oracle 19c
本文实例讲述了Python操作Oracle数据库的简单方法和封装类。分享给大家供大家参考,具体如下: 最近工作有接触到Oracle,发现很多地方用Python脚本去做的话,应该会方便很多,所以就想先学习下Python操作Oracle的...
Oracle相关接口操作说明,使用方法!
oracle外连接(join)详解及详细实例,需要列子的可以看看。