首先创建两张表,初始化数据
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 中的左连接、右连接、内连接、全连接和交叉连接。 左连接(Left Outer Join) 左连接是一种外连接,它返回左表中的所有记录,并将右表中的记录匹配到左表中。如果右表中没有匹配的记录...
直接连接(Direct Connect)是指ArcGIS直接访问Oracle Spatial数据库的一种方式,无需通过中间层如ArcSDE等工具进行数据传输。这种方式可以提高查询效率,简化系统架构,并减少维护成本。 **2.2 主要优点** - **...
在Oracle数据库系统中,外连接(Outer Join)是一种高级的SQL联接操作,它扩展了标准的内连接(Inner Join)概念,允许我们查询不匹配的数据。外连接分为三种类型:左外连接(Left Outer Join)、右外连接(Right ...
Oracle的外连接查询是数据库操作中的重要组成部分,它允许用户获取来自两个或更多表的数据,即使在某些情况下,这些表之间的连接条件不完全匹配。在理解外连接查询之前,我们首先要了解内连接,即最基础的相等连接。...
标题中提到的“Oracle客户端连接远程服务器”,是指使用Oracle数据库客户端软件来建立与远程Oracle数据库服务器的连接。Oracle数据库是一种广泛使用的商业数据库系统,它支持多用户并发访问并保证数据的一致性,适用...
1. oraociei11.dll:这是Oracle Call Interface (OCI) 的动态链接库,是Oracle数据库访问接口的核心,用于应用程序与Oracle数据库交互。 2. orannzsbb11.dll:这是Oracle Net Services的缓冲区管理器,负责数据在...
### 强制释放Oracle数据连接方案 在日常的数据库管理工作中,我们经常遇到数据库连接超限的情况,这通常是由于大量的数据库连接未被正确关闭或回收所导致的。本文将详细介绍如何查看并调整Oracle数据库的连接数量...
通过对比可以看出,Oracle在实现左(外)、右(外)、全(外)以及内连接时,其语法与SQL标准有所不同,尤其是在左(外)和右(外)连接上使用了独特的“+”符号来表示可选项。对于全(外)连接,Oracle通过组合左(外)和右(外)...
oracle数据库连接工具:toad oracle 11
### Oracle 最大连接数问题详解 #### 一、问题背景 在实际的部署环境中,Oracle 数据库经常会遇到连接数受限的问题。特别是在使用如 WebLogic 或 WebSphere 这类中间件时,通过连接池的方式虽然可以有效提升数据源...
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
- 客户端远程连接Oracle数据库通常指的是使用专门的数据库管理工具如PL/SQL Developer等进行连接。这种方式适用于日常的数据库管理和维护工作。 #### 二、测试环境 - **服务器端**: RHEL 5.4 (Red Hat Enterprise ...
Oracle客户端包含了连接Oracle服务器所需的所有组件,包括网络配置、数据库驱动(如oci.dll)、SQL*Plus工具等。安装客户端后,系统会自动配置好相应的环境变量,使得程序可以通过Oracle Net Services(也称为TNS)...
这里显示的`150`即为当前数据库实例可以处理的最大进程数,包括了所有用户连接和其他后台进程等。 #### 三、修改`processes`参数 如果当前的`processes`参数值不足以满足需求,可以通过以下步骤进行修改: 1. **...
- **监控数据库性能**:利用Oracle自带的工具如AWR报告、等待事件统计等,来监控数据库性能和连接状态,及时发现潜在问题。 通过上述步骤,不仅可以解决当前遇到的连接空闲例程问题,还能优化数据库的整体性能和...
本文将深入探讨如何使用GeoServer 2.14版本与Oracle数据库进行集成,以及如何在GeoServer中读取并显示Oracle数据库内的Shapefile数据。 首先,Oracle数据库是全球领先的大型企业级数据库管理系统,广泛应用于数据...
资源中包含了关于Qt连接Oracle过程中可能遇到的问题详解,比如:Qt连接Oracle失败,Qt如何远程访问Oracle等问题