`

Oracle 外链接 内链接 等

阅读更多
首先创建两张表,初始化数据
SQL> create table zk_test_1(id int,name varchar(10));
SQL> insert into zk_test_1 values(1,'aaa');
SQL> insert into zk_test_1 values(2,'bbb');
SQL> insert into zk_test_1 values(3,'ccc');

SQL> create table zk_test_2(id int , score int);
SQL> insert into zk_test_2 values(1,10);
SQL> insert into zk_test_2 values(2,20);
SQL> insert into zk_test_2 values(4,40);

1.内连接(Inner Join): 两表都满足的组合
SQL> select * from zk_test_1 a inner join zk_test_2 b on a.id = b.id;
结果:
ID  NAME  SCORE
1    aaa    10
2    bbb    20

2.外连接(Outter Join):
*左外连接(Left Outer Jion)
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。其中outer可以忽略。
SQL> select a.id,a.name,b.score from zk_test_1 a left outer join zk_test_2 b on a.id = b.id;
结果:
ID  NAME  SCORE
1    aaa    10
2    bbb    20
3    ccc  (null)

*右外连接(Right Outer Join)
SQL> select a.id,a.name,b.score from zk_test_1 a right outer join zk_test_2 b on a.id = b.id;
结果:
ID  NAME  SCORE
1    aaa    10
2    bbb    20
4   (null)  40

*全外连接(Full Outer Join)
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
SQL> select a.id,a.name,b.score from zk_test_1 a full outer join zk_test_2 b on a.id = b.id;
结果:
ID  NAME  SCORE
1    aaa    10
2    bbb    20
3    ccc  (null)
4   (null)  40

3.外连接与条件配合使用
当在内连接查询中加入条件是,无论是将它加入到join子句,还是加入到where子句,其效果是完全一样的,但对于外连接情况就不同了。当把条件加入到join子句时,SQL Server、Informix会返回外连接表的全部行,然后使用指定的条件返回第二个表的行。如果将条件放到where子句中,SQL Server将会首先进行连接操作,然后使用where子句对连接后的行进行筛选。
在join子句中:
SQL> select a.id,a.name,b.score from zk_test_1 a right join zk_test_2 b on a.id = b.id and b.id = 2;
结果:
ID     NAME     SCORE
(null) (null)   10
2       bbb     20
(null) (null)   40

在where子句中:
SQL> select a.id,a.name,b.score from zk_test_1 a right join zk_test_2 b on a.id = b.id where b.id = 2;
结果:
ID     NAME     SCORE
2       bbb     20

4,自身连接
自身连接是指同一个表自己与自己进行连接。这种一元连接通常用于从自反关系(也称作递归关系)中抽取数据。例如人力资源数据库中雇员与老板的关系。
分享到:
评论

相关推荐

    oracle 左连接 右连接学习

    下面我们将详细介绍 Oracle 中的左连接、右连接、内连接、全连接和交叉连接。 左连接(Left Outer Join) 左连接是一种外连接,它返回左表中的所有记录,并将右表中的记录匹配到左表中。如果右表中没有匹配的记录...

    Oracle Spatial与ArcGIS连接

    直接连接(Direct Connect)是指ArcGIS直接访问Oracle Spatial数据库的一种方式,无需通过中间层如ArcSDE等工具进行数据传输。这种方式可以提高查询效率,简化系统架构,并减少维护成本。 **2.2 主要优点** - **...

    理解oracle中的外连接

    在Oracle数据库系统中,外连接(Outer Join)是一种高级的SQL联接操作,它扩展了标准的内连接(Inner Join)概念,允许我们查询不匹配的数据。外连接分为三种类型:左外连接(Left Outer Join)、右外连接(Right ...

    oracle客户端连接远程服务器

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

    SqlDbx连接oracle

    1. oraociei11.dll:这是Oracle Call Interface (OCI) 的动态链接库,是Oracle数据库访问接口的核心,用于应用程序与Oracle数据库交互。 2. orannzsbb11.dll:这是Oracle Net Services的缓冲区管理器,负责数据在...

    强制释放Oracle数据连接方案

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

    Oracle左(外)、右(外)、全(外)、(内)连接语法与SQL标准的比较

    通过对比可以看出,Oracle在实现左(外)、右(外)、全(外)以及内连接时,其语法与SQL标准有所不同,尤其是在左(外)和右(外)连接上使用了独特的“+”符号来表示可选项。对于全(外)连接,Oracle通过组合左(外)和右(外)...

    oracle数据库连接工具

    oracle数据库连接工具:toad oracle 11

    sap 与 oracle数据库的连接

    在SAP开发中,连接Oracle数据库需要遵循一定的步骤和顺序,包括建立目录、解压缩文件、建立虚连接、修改环境变量、拷贝文件和检查目录等步骤。只有遵循这些步骤,才能成功地连接Oracle数据库,实现数据交换和共享。 ...

    oracle 最大连接数问题

    ### Oracle 最大连接数问题详解 #### 一、问题背景 在实际的部署环境中,Oracle 数据库经常会遇到连接数受限的问题。特别是在使用如 WebLogic 或 WebSphere 这类中间件时,通过连接池的方式虽然可以有效提升数据源...

    geoserver2.14.0 oracle 数据库连接

    本文将深入探讨如何使用GeoServer 2.14版本与Oracle数据库进行集成,以及如何在GeoServer中读取并显示Oracle数据库内的Shapefile数据。 首先,Oracle数据库是全球领先的大型企业级数据库管理系统,广泛应用于数据...

    linux远程连接oracle数据库

    - 客户端远程连接Oracle数据库通常指的是使用专门的数据库管理工具如PL/SQL Developer等进行连接。这种方式适用于日常的数据库管理和维护工作。 #### 二、测试环境 - **服务器端**: RHEL 5.4 (Red Hat Enterprise ...

    易语言连接Oracle数据库

    Oracle客户端包含了连接Oracle服务器所需的所有组件,包括网络配置、数据库驱动(如oci.dll)、SQL*Plus工具等。安装客户端后,系统会自动配置好相应的环境变量,使得程序可以通过Oracle Net Services(也称为TNS)...

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

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

    oracle遇到连接空闲例程

    - **监控数据库性能**:利用Oracle自带的工具如AWR报告、等待事件统计等,来监控数据库性能和连接状态,及时发现潜在问题。 通过上述步骤,不仅可以解决当前遇到的连接空闲例程问题,还能优化数据库的整体性能和...

    更改Oracle数据库的用户连接数

    这里显示的`150`即为当前数据库实例可以处理的最大进程数,包括了所有用户连接和其他后台进程等。 #### 三、修改`processes`参数 如果当前的`processes`参数值不足以满足需求,可以通过以下步骤进行修改: 1. **...

    oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法

    错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...

    Qt连接Oracle详解

    资源中包含了关于Qt连接Oracle过程中可能遇到的问题详解,比如:Qt连接Oracle失败,Qt如何远程访问Oracle等问题

Global site tag (gtag.js) - Google Analytics