`
lychee_cao
  • 浏览: 24140 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Oracle数据库中表的四种连接方式

阅读更多
表的连接是指在一个SQL语句中通过表与表之间的关连,从一个或多个表中检索相关的数据,大体上表与表之间的连接主要可分四种,分别为相等连接,外连接,不等连接和自连接,本文将主要从以下几个典型的例子来分析Oracle表的四种不同连接方式:

1. 相等连接

通过两个表具有相同意义的列,可以建立相等连接条件。只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中。

例 查询员工信息以及对应的员工所在的部门信息:

 SELECT * FROM EMP,DEPT;  SELECT * FROM EMP,DEPT  WHERE EMP.DEPTNO = DEPT.DEPTNO;

REM 显示工资超过2000的员工信息以及对应的员工的部门名称。

2. 外连接

对于外连接,Oracle中可以使用“(+)”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍。除了显示匹配相等连接条件的信息之外,还显示无法匹配相等连接条件的某个表的信息。

外连接采用(+)来识别。

A) 左条件(+) = 右条件;

代表除了显示匹配相等连接条件的信息之外,还显示右条件所在的表中无法匹配相等连接条件的信息。此时也称为"右外连接".另一种表示方法是:

SELECT ... FROM 表1 RIGHT OUTER JOIN 表2 ON 连接条件

B) 左条件 = 右条件(+);

代表除了显示匹配相等连接条件的信息之外,还显示左条件所在的表中无法匹配相等连接条件的信息。此时也称为"左外连接".

SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 连接条件

例 显示员工信息以及所对应的部门信息

--无法显示没有部门的员工信息

--无法显示没有员工的部门信息

--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;

--直接做相等连接:

 SELECT * FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;


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;

3. 不等连接

两个表中的相关的两列进行不等连接,比较符号一般为>,<,...,BETWEEN.. AND..

REM SALGRADE
--DESC SALGRADE;
--SELECT * FROM SALGRADE;


REM 显示员工的编号,姓名,工资,以及工资所对应的级别。

SELECT EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMP
WHERE EMP.SAL BETWEEN LOSAL AND HISAL;


REM 显示雇员的编号,姓名,工资,工资级别,所在部门的名称;

SELECT EMPNO,ENAME,SAL,GRADE,DNAME FROM EMP,DEPT,SALGRADE
WHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.SAL BETWEEN LOSAL AND HISAL;


4. 自连接

自连接是数据库中经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。下面介绍一下自连接的方法:

将原表复制一份作为另一个表,两表做笛卡儿相等连接。

例 显示雇员的编号,名称,以及该雇员的经理名称

SELECT WORKER.ENAME,WORKER.MGR,MANAGER.EMPNO,MANAGER.ENAME FROM EMP WORKER,EMP MANAGER

WHERE WORKER.MGR = MANAGER.EMPNO;

分享到:
评论

相关推荐

    Oracle数据库3种主要表连接方式对比

    ### Oracle数据库三种主要表连接方式对比 在Oracle数据库中,为了获取来自多个表的数据,我们需要使用不同的连接方式来实现这一目的。本文将详细介绍三种主要的表连接方式:嵌套循环连接(Nested Loop Join,简称NL...

    SQL SERVER连接oracle数据库几种方法

    在上面的代码中,我们使用 OPENDATASOURCE 连接到 Oracle 数据库,然后选择 DAIMIN.JOBS 表中的所有数据。 方法 2:使用链接服务器 在 SQL Server 中,我们可以创建一个链接服务器,以便连接到 Oracle 数据库。...

    Java连接Oracle数据库的各种方法

    Java连接Oracle数据库主要依赖于两种方法:JDBC和SQLJ。这两种方法都是Oracle8i及其后续版本中为Java开发者提供的数据库交互方式。 JDBC(Java Database Connectivity)是一种标准的Java API,它允许Java应用程序...

    易语言连接Oracle数据库

    数据库连接组件用于建立与Oracle数据库的物理连接,而记录集组件则负责在程序中操作数据,如查询、插入、更新和删除记录。 1. 数据库连接组件: - 在易语言中,设置数据库连接通常涉及以下参数: - 数据源(DSN)...

    pdm连接oracle数据库

    #### 一、PDM简介与Oracle数据库连接的重要性 产品数据管理(Product Data Management, PDM)系统是企业信息化的重要组成部分,用于管理与产品相关的所有数据,包括设计文档、图纸、BOM表等。在PDM系统中实现与Oracle...

    geoserver2.14.0 oracle 数据库连接

    通过以上步骤,你可以成功地在GeoServer 2.14中配置Oracle数据库连接,并展示其中的Shapefile数据。这种集成不仅允许你利用Oracle的强大功能处理大规模的空间数据,还能够通过GeoServer提供丰富的地图服务,用于Web...

    如何连接oracle数据库及故障解决办法

    连接 Oracle 数据库是每个开发者和数据库管理员都需要掌握的基本技能,但是很多人在连接 Oracle 数据库时都会遇到各种问题,本文将详细介绍如何连接 Oracle 数据库及故障解决办法。 首先,在连接 Oracle 数据库之前...

    sap 与 oracle数据库的连接

    SAP系统与Oracle数据库的连接是SAP开发中的一个重要步骤,该连接允许SAP系统访问Oracle数据库中的数据,实现数据交换和共享。在本文中,我们将详细介绍SAP开发中模块连接Oracle数据库的具体方法步骤。 首先,需要...

    java连接oracle数据库jar包

    在Java中实现Oracle数据库连接,我们需要用到特定的JAR包,这些JAR包通常包含在Oracle的数据库客户端或者Oracle JDBC驱动程序中。 首先,Oracle JDBC驱动分为两种类型: Thin驱动和 Thick驱动。Thin驱动是一种纯...

    Oracle-新建Oracle数据库并连接(图文,详细).docx

    连接到Oracle数据库可以使用sqlplus和SQL developer两种方式。 使用sqlplus连接数据库 1. 打开cmd窗口,输入sqlplus /nolog回车。 2. 输入conn sys/admin@BOOKSALES as sysdba回车。 使用SQL developer连接数据库...

    Oracle数据库表结构导出工具

    在日常管理和开发过程中,有时我们需要将Oracle数据库的表结构导出为其他格式,便于分析、备份或共享。"Oracle数据库表结构导出工具"就是为此目的设计的实用程序,它能够方便地将表结构转换成易于查看和处理的Excel...

    oracle数据库连接工具

    "Oracle数据库连接工具"指的是可以方便地连接到Oracle数据库并执行各种操作的软件应用。在给定的标签中提到了"oracle navicat",这指的是Navicat,一个知名的数据库管理工具,特别适合于Oracle数据库的连接和管理。 ...

    在ArcGIS中如何使用Oracle直连方式连接oracle数据库

    在 ArcGIS 中使用直连方式连接 Oracle 数据库可以使用 ArcCatalog 工具,该工具可以帮助用户快速创建空间数据库连接项。首先,需要在 ArcCatalog 中找到 Database connections,选择添加空间数据库连接项,然后填写...

    labview 调用oracle数据库

    在LabVIEW中,你可以使用“数据库工具”库中的“创建ODBC连接”函数来建立到Oracle数据库的连接。确保已安装Oracle的ODBC驱动,并在系统ODBC数据源管理器中配置好数据源。 一旦连接成功,我们可以执行SQL命令来操作...

    Excel通过VBA连接Oracle数据库

    在Excel中通过Visual Basic for Applications (VBA) 连接Oracle数据库是一种强大的自动化工具,能够让你轻松地从大型数据库中提取、处理和分析数据。VBA是Excel内置的编程环境,允许用户创建自定义功能和宏,以实现...

    VS2015连接Oracle数据库的详细步骤

    在本文中,我们将详细探讨如何在Visual Studio 2015 (VS2015)中连接Oracle数据库。Oracle Developer Tools for Visual Studio 提供了必要的组件来实现这一目标,包括Oracle Data Provider for .NET,使得VS2015能够...

    修改数据库最大连接数以及linux系统下ORACLE数据库启动多实例参照.pdf

    四、Oracle 数据库启动和关闭方式 Oracle 数据库有多种启动和关闭方式,包括: 1. startup nomount:非安装启动,仅需要init.ora 文件。 2. startup mount dbname:安装启动,数据库日志归档、数据库恢复、重新...

    linux远程连接oracle数据库

    ### Linux远程连接Oracle数据库知识点详解 #### 一、测试项目 - **通过Java程序远程连接Oracle 10g数据库** - Java作为一种广泛使用的编程语言,可以用来开发各种应用程序,包括与数据库交互的应用。要实现Java...

    C#连接Oracle数据库字符串

    C#连接Oracle数据库字符串 C#连接Oracle数据库字符串

    JAVA 使用数据库连接池连接Oracle数据库全代码

    通过上述步骤,我们可以在Java应用中高效地管理和使用Oracle数据库连接。使用DBCP数据库连接池不仅可以减少频繁创建和销毁数据库连接所带来的开销,还可以更灵活地根据应用程序的需求动态调整连接池的大小,从而提高...

Global site tag (gtag.js) - Google Analytics