`

Oracle左右全连接 收藏

阅读更多
--建立测试数据      
create table a(id number);      
create table b(id number);      
insert into a values(1);      
insert into a values(2);      
insert into a values(3);      
insert into b values(1);      
insert into b values(2);      
insert into b values(4);      
commit;      
     
--左:      
--主流数据库通用的方法      
select * from a left join b on a.id=b.id;      
--Oracle特有的方法      
select * from a, b where a.id=b.id(+);      
     
        ID         ID      
---------- ----------      
         1          1      
         2          2      
         3       
     
     
--右:      
--主流数据库通用的方法      
select * from a right join b on a.id=b.id;      
--Oracle特有的方法      
select * from a, b where a.id(+)=b.id;      
     
        ID         ID      
---------- ----------      
         1          1      
         2          2      
                    4      
               
               
--内      
--主流数据库通用的方法      
select * from a join b on a.id=b.id;      
--where关联      
select * from a, b where a.id=b.id;      
     
        ID         ID      
---------- ----------      
         1          1      
         2          2      
               
               
--全外      
--主流数据库通用的方法      
select * from a full join b on a.id=b.id;      
--Oracle特有的方法      
select *      
  from a, b      
 where a.id = b.id(+)      
union     
select *       
  from a, b       
 where a.id(+) = b.id;      
     
        ID         ID      
---------- ----------      
         1          1      
         2          2      
         3       
                    4      
     
     
--完全,也叫交叉连接或者笛卡尔积      
--主流数据库通用的方法      
select * from a,b;      
--或者      
select * from a cross join b;      
     
        ID         ID      
---------- ----------      
         1          1      
         1          2      
         1          4      
         2          1      
         2          2      
         2          4      
         3          1      
         3          2      
         3          4      
     
     
连接无非是这几个      
--内连接和where相同      
inner join     
--左向外连接,返回左边表所有符合条件的      
left join     
--右向外连接,返回右边表所有符合条件的      
right join     
--完整外部连接,左向外连接和右向外连接的合集      
full join     
--交叉连接,也称笛卡儿积。返回左表中的每一行与右表中所有行的组合      
cross join     
     
     
--补充:      
--左向外连接,返回左边表所有符合条件的,      
--注意这里没有第二个加号,会直接过滤掉数据,只显示符合条件的记录      
select *       
  from a, b      
 where a.id = b.id(+)      
   and b.id = 2;      
         
        ID         ID      
---------- ----------      
         2          2         
               
               
--左向外连接,返回左边表所有符合条件的      
--注意where上第二个加号,它的作用是修改右边表记录的显示,例如如果b.id(+) = 2,显示为2,否则显示null      
select *      
  from a, b      
 where a.id = b.id(+)      
   and b.id(+) = 2;      
     
        ID         ID      
---------- ----------      
         2          2      
         3       
         1         
分享到:
评论

相关推荐

    oracle 左连接 右连接学习

    全连接返回两个表的并集,即包括左右表中的所有记录。如果某个记录在一表中不存在,将以 null 值代替。 交叉连接(Cross Join) 交叉连接是将两个表的所有记录组合成一个结果集,生成一个笛卡尔积。例如: SELECT...

    sap 与 oracle数据库的连接

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

    oracle客户端配置连接oracle客户端配置连接

    oracle客户端配置连接oracle客户端配置连接oracle客户端配置连接

    oracle数据库表左连接右连接全连接的认识

    全连接是指左右连接的全部表示,根据连接条件在任意一方表中出现无法匹配的情况,不满足条件的部分均用空值代替。例如: `SELECT e.empno, e.ename, d.dname FROM emp e FULL JOIN dept d ON e.deptno = d.deptno;`...

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

    新建Oracle数据库并连接详细教程 在这篇教程中,我们将学习如何新建Oracle数据库并连接到该数据库。该教程分为两部分:新建Oracle数据库和连接到数据库。 新建Oracle数据库 新建Oracle数据库需要使用Database ...

    oracle客户端连接远程服务器

    标题中提到的“Oracle客户端连接远程服务器”,是指使用Oracle数据库客户端软件来建立与远程Oracle数据库服务器的连接。Oracle数据库是一种广泛使用的商业数据库系统,它支持多用户并发访问并保证数据的一致性,适用...

    ORACLE 数据库如何连接,连接方式

    Oracle 数据库连接是数据库管理中的基础操作,对于任何需要与Oracle数据库进行交互的应用程序或管理员来说,理解如何正确连接至关重要。以下将详细讲解Oracle数据库的连接方式和配置过程。 首先,Oracle数据库连接...

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

    ### JAVA 使用数据库连接池连接Oracle数据库全代码解析 #### 一、概述 本文将详细介绍如何在Java项目中使用Apache DBCP(Database Connection Pool)来连接Oracle数据库,并提供完整的示例代码。通过这种方式,我们...

    Oracle客户端远程连接工具

    oracle客户端连接远程库的配置文件,不需要安装oracle,只需配置即可

    强制释放Oracle数据连接方案

    ### 强制释放Oracle数据连接方案 在日常的数据库管理工作中,我们经常遇到数据库连接超限的情况,这通常是由于大量的数据库连接未被正确关闭或回收所导致的。本文将详细介绍如何查看并调整Oracle数据库的连接数量...

    Oracle Spatial与ArcGIS连接

    ### Oracle Spatial与ArcGIS连接知识点解析 #### 一、引言 随着信息技术的发展,空间数据管理变得日益重要。许多组织正在转向使用Oracle Spatial作为其核心数据库系统,这主要是因为Oracle Spatial能够提供强大的...

    易语言oracle数据库连接模块源码

    在易语言中,开发Oracle数据库连接模块是为了实现对Oracle数据库的高效、便捷操作。Oracle数据库是全球广泛使用的大型关系型数据库管理系统,适用于处理大量数据和并发事务。 Oracle数据库连接模块的核心在于如何...

    Oracle左右连接及一些练习资料

    本文将深入探讨Oracle中的“左右连接”操作,以及如何通过实践提升SQL查询技能。 首先,我们来理解Oracle中的“左右连接”(Left Join)。左连接是一种SQL联接类型,它返回左表的所有记录,即使右表中没有匹配的记录...

    SqlDbx连接oracle

    首先,连接Oracle数据库通常需要Oracle客户端软件,但这里提到的“Sqldbx连接oracle,不用安装client”,意味着SqlDbx可能通过一种无需完整Oracle客户端的方式来实现连接。这种连接方式通常依赖于Oracle的Instant ...

    力控与Oracle数据库的连接.pdf

    力控与Oracle数据库的连接是工业自动化领域常见的数据交互方式,力控实时数据库提供了一个高效、稳定且开放的平台,能够与多种数据库系统进行数据交换,包括Oracle和Access。本文将重点介绍如何配置力控与Oracle...

    易语言连接Oracle数据库

    本文将详细介绍如何使用易语言连接Oracle数据库,并探讨相关组件的使用。 首先,连接Oracle数据库的基础是确保本机已经安装了Oracle客户端。Oracle客户端包含了连接Oracle服务器所需的所有组件,包括网络配置、...

    DataGrip连接Oracle的Driver连接.7z

    本压缩包"DataGrip连接Oracle的Driver连接.7z"显然包含了与使用DataGrip连接Oracle数据库相关的驱动程序和配置信息。让我们深入探讨一下相关知识点。 首先,了解**DataGrip**。DataGrip是一款多引擎的数据库和SQL ...

    oracle连接需要的驱动

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

    oracle ManagedDataAccess连接实例

    在"Oracle C# ManagedDataAccess.dll连接的小实例"中,我们将探讨如何使用OMDA库来建立和管理与Oracle数据库的连接。首先,你需要确保已经在项目中引用了Oracle ManagedDataAccess Client NuGet包,这样可以在项目中...

    sql_server连接Oracle方法(最全)

    "SQL Server 连接 Oracle 方法" SQL Server 连接 Oracle 方法是数据库管理系统中的一个重要话题。本文将详细介绍如何在 SQL Server 中连接 Oracle 数据库,并解决在连接过程中可能出现的问题。 安装 Oracle 客户端...

Global site tag (gtag.js) - Google Analytics