`
jeelee
  • 浏览: 637092 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle 的连接

阅读更多
Oracle的外连接(outer join):可以分为:左连接(left outer join),右连接(right outer join),全连接(full outer join)
1,左连接:
select e.last_name, e.department_id, d.department_name 
from employees e  left outer join departments d 
on (e.department_id = d.department_id);
等价于:
select e.last_name, e.department_id, d.department_name 
from employees e, departments d 
where e.department_id=d.department_id(+);
结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。
2,右连接:
select e.last_name, e.department_id, d.department_name 
from employees e  right outer join departments d 
on (e.department_id = d.department_id);
等价于:
select e.last_name, e.department_id, d.department_name 
from employees e, departments d 
where e.department_id(+)=d.department_id;
结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。
3,全连接:
select e.last_name, e.department_id, d.department_name 
from employees e  full outer join departments d 
on (e.department_id = d.department_id);
结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。

其实:外连接就是查两张表 左连接就是左边的表全有值,右边表的值可以为空(+)
右连接是左边表值可以为空(+)    右边表的值全有
全连接是左连接和右连接的并集 好像是这个符号(U)
内连接是左连接和右连接的交集 。。。 
注:+号在=号左边叫右连接,+号在=右边叫做左连接
注:左连接或右连接,也可以加where条件:
select e.last_name, e.department_id, d.department_name 
from employees e  left outer join departments d 
on (e.department_id = d.department_id)
where e.sex='1' and e.age > 30 ;

其余连接方式:
交叉连接(cross join),查出的表的笛卡尔积 eg: select * from A cross join B    (A表有M行,B表有N行,结果是M*N行)。

自然连接(natural join):
自然连接,natural join 会根据列名,自动创建连接,省略where语句,避免笛卡尔积的出现
eg: select empno,ename,sal,deptno,loc from emp natural join dept;
using :表示与指定的列相关联。
eg: select e.ename,e.sal,deptno,d.loc from emp e join dept d using (deptno) where deptno=20;
注:被using 子句所引用的列,在sql 语句中的任何地方不能使用表名或者别名作为前缀。

PS :做外连接的时候,where 条件中不可以加从表的条件,需将从表做个子查询,做成另外一个表。
eg :select t.acctype, nvl(b.name,t.acctype) as name
      from biacciccardmaptb t, dictcodesettb b
      where b.category = '账户类型'
        and t.acctype=b.code(+)
        and t.iccardno = '1000751090001385'   --这种做法是错误的

需要以下的做法:
select t.acctype, nvl(b.name,t.acctype) as name
from biacciccardmaptb t, (select * from dictcodesettb where category = '账户类型' )b
where t.acctype=b.code(+)
   and t.iccardno = '1000751090001385'

分享到:
评论

相关推荐

    oracle连接需要的驱动

    标题提到的"oracle连接需要的驱动"指的是Oracle JDBC驱动,它允许Java应用程序通过JDBC(Java Database Connectivity)接口与Oracle数据库进行通信。 Oracle JDBC驱动主要有四种类型: 1. ** Thin Driver (jdbc:...

    oracle连接数问题

    通过细致地调整Oracle数据库的`pga_aggregate_target`、`processes`、`sessions`参数,以及优化`LISTENER.ORA`文件和操作系统配置,可以有效解决Oracle连接数问题,提升数据库的并发处理能力。这些操作需要根据具体...

    Oracle连接工具plsql11x64位

    Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具plsql11x64位Oracle连接工具...

    Oracle连接字符串

    "Oracle 连接字符串多种方法" Oracle 连接字符串是指连接 Oracle 数据库的字符串书写方法,本文总结了多种连接 Oracle 数据库的字符串书写方法。 一、标准连接字符串 标准连接字符串是最基本的连接字符串格式,...

    oracle连接的包

    "oracle连接包"可能指的是Oracle的ojdbc驱动,例如`ojdbc8.jar`或`ojdbc7.jar`等,这些驱动包允许Java应用通过JDBC API与Oracle数据库建立连接。将这个连接包放入项目的`lib`目录下,意味着它是项目运行时的依赖库,...

    Oracle连接常见问题

    Oracle连接常见问题 Oracle连接常见问题

    C#中oracle连接数据库的封装类

    在本场景中,我们关注的是一个名为"C#中oracle连接数据库的封装类"的主题,这个主题涉及到创建一个名为`DbHelperOra.cs`的类,用于简化与Oracle数据库的交互。这种封装可以提高代码的可读性和复用性,减少直接处理...

    oracle连接db2数据库的步骤

    标题:“Oracle 连接 DB2 数据库的详细步骤” 本文将详细介绍如何在 Oracle 环境中配置和连接到 DB2 数据库,包括获取必要的信息、配置 ODBC 数据源、修改 Oracle 相关配置文件以及验证连接。以下是一步步的详细...

    webphere下oracle连接池的配置

    在WebSphere环境下配置Oracle连接池是一项重要的任务,它能够显著提高应用程序的性能和响应速度。连接池技术可以有效管理数据库连接资源,避免频繁创建和销毁连接带来的性能开销。本文将详细介绍在WebSphere应用...

    非常好用的oracle连接工具 ob10

    非常好用的oracle连接工具 ob10(免安装已破解),方便导入导出,比较明了,跟pl/sql可以媲美的哦。

    oracle连接数据库的驱动包

    为了与Oracle数据库进行交互,开发者通常需要一个数据库驱动程序,这就是"Oracle连接数据库的驱动包"的作用。这个驱动包使得Java应用程序能够通过JDBC(Java Database Connectivity)接口与Oracle数据库建立连接,...

    异构服务提高Oracle连接异种数据源能力

    【异构服务提高Oracle连接异种数据源能力】 在企业环境中,由于历史发展和业务需求,往往存在多种数据库平台并存的情况,每种平台都承载着相应的应用系统。随着业务的扩展,如何在不干扰现有应用的情况下高效整合...

    64位PLSQL免安装Oracle连接工具

    标题中的“64位PLSQL免安装Oracle连接工具”指的是一个专为64位操作系统设计的,无需完整安装Oracle数据库就能使用的PL/SQL Developer(PLSQL)连接工具。这个工具通常依赖于Oracle的Instant Client,它是一个轻量级...

    oracle连接查询SQL性能测试

    标题“Oracle连接查询SQL性能测试”涉及的是数据库管理和优化领域,特别是针对Oracle数据库系统的SQL查询性能分析。在Oracle中,连接查询(JOINs)是整合多个表数据的关键操作,其性能直接影响到数据库的整体效率。...

    oracle连接失败

    在IT领域,尤其是在数据库管理与运维中,遇到“Oracle连接失败”的情况是常见的技术挑战之一。本文将深入探讨这一问题,特别是聚焦于标题与描述中提及的“ORA-12560:TNS:协议适配器错误”,并提供详细的解决方案。 ...

    oracle连接配置

    Oracle 连接配置是一种常用的数据库连接方式,它允许用户通过指定的连接字符串连接到 Oracle 数据库中。在本文中,我们将详细介绍 Oracle 连接配置的步骤和注意事项。 连接字符串的组成 Oracle 连接字符串通常由三...

    .net oracle 连接测试

    .net oracle 连接测试小程序,包括oracleclient,oledb等连接方式,framework4.0开发,适应于oracle 8i 9i 10g 11g

    delphi ODAC oracle 连接控件

    在描述中提到的"delphi ODAC oracle 连接控件",实际上指的是ODAC中的TOracleConnection组件,它是连接Oracle数据库的关键部分。 1. **ODAC概述**: ODAC是Devart公司开发的,旨在为Delphi和C++Builder开发者提供...

    C#中连接oracle连接方法

    本篇将详细介绍C#中连接Oracle数据库的方法,包括所需的组件、连接字符串的构建以及使用ADO.NET进行数据操作的基本步骤。 首先,你需要在你的项目中引入Oracle客户端库。Oracle提供了一个名为ODP.NET(Oracle Data ...

Global site tag (gtag.js) - Google Analytics