Oracle
的左连接和右连接
PL-SQL中,左连接和右连接以如下方式来实现
查看如下语句:
SELECT emp_name, dept_name FORM Employee, Department WHERE Employee.emp_deptid(+) = Department.deptid
此SQL文使用了右连接,即“(+)”所在位置的另一侧为连接的方向,右连接说明等号右侧的所有记录均会被显示,
无论其在左侧是否得到匹配,也就是说上例中无论会不会出现某个部门没有一个员工的情况,这个部门的名字都会在查询结果中出现。
反之:
SELECT emp_name, dept_name FORM Employee, Department WHERE Employee.emp_deptid = Department.deptid(+)
则是左连接,无论这个员工有没有一个能在Department表中得到匹配的部门号,这个员工的记录都会被显示
一般的相等连接:
select * from a, b where a.id = b.id;
这个就属于内连接。
对于外连接
:
Oracle
中可以使用“(+) ”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN
LEFT OUTER JOIN:左外关联
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的员工记录。
RIGHT OUTER JOIN:右外关联
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
结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。
FULL OUTER JOIN:全外关联
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的员工记录和没有任何员工的部门记录。
分享到:
相关推荐
在Oracle数据库系统中,外连接(Outer Join)是一种高级的SQL联接操作,它扩展了标准的内连接(Inner Join)概念,允许我们查询不匹配的数据。外连接分为三种类型:左外连接(Left Outer Join)、右外连接(Right ...
标题中提到的“Oracle客户端连接远程服务器”,是指使用Oracle数据库客户端软件来建立与远程Oracle数据库服务器的连接。Oracle数据库是一种广泛使用的商业数据库系统,它支持多用户并发访问并保证数据的一致性,适用...
oracle数据库连接工具:toad oracle 11
### 强制释放Oracle数据连接方案 在日常的数据库管理工作中,我们经常遇到数据库连接超限的情况,这通常是由于大量的数据库连接未被正确关闭或回收所导致的。本文将详细介绍如何查看并调整Oracle数据库的连接数量...
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
左连接是一种外连接,它返回左表中的所有记录,并将右表中的记录匹配到左表中。如果右表中没有匹配的记录,将以 null 值代替。例如: SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name ...
在易语言中,开发Oracle数据库连接模块是为了实现对Oracle数据库的高效、便捷操作。Oracle数据库是全球广泛使用的大型关系型数据库管理系统,适用于处理大量数据和并发事务。 Oracle数据库连接模块的核心在于如何...
### Oracle 最大连接数问题详解 #### 一、问题背景 在实际的部署环境中,Oracle 数据库经常会遇到连接数受限的问题。特别是在使用如 WebLogic 或 WebSphere 这类中间件时,通过连接池的方式虽然可以有效提升数据源...
在GeoServer中连接Oracle数据库,需要确保系统已安装了Oracle数据库驱动,这通常通过JDBC(Java Database Connectivity)实现。在这个案例中,`gt-jdbc-oracle-20.0.jar`文件是一个Oracle JDBC驱动包,它使得Java...
Oracle客户端连接Oracle服务器是...以上就是Oracle客户端连接Oracle服务器的主要知识点,包括配置步骤、连接工具的使用以及数据库管理中的基本概念。理解并熟练掌握这些内容对于日常的数据库管理和开发工作至关重要。
除了上述步骤外,还应该考虑以下几点来避免未来再次出现连接空闲例程的问题: - **调整会话超时设置**:可以通过调整`IDLE_TIME`参数来控制会话的空闲时间,减少连接被标记为闲置的可能性。 - **定期检查连接池**:...
Oracle连接有多中,我是在平常开发项目过程中用到的Oracle左连接进行了简单的阐述。
### Oracle Spatial与ArcGIS连接知识点解析 #### 一、引言 随着信息技术的发展,空间数据管理变得日益重要。许多组织正在转向使用Oracle Spatial作为其核心数据库系统,这主要是因为Oracle Spatial能够提供强大的...
Oracle 数据库连接字符串大全教程旨在提供了完整的 Oracle 连接字符串大全,涵盖了异地或服务器数据库连接、ODBC 连接、OLE DB 连接、Oracle.DataAccess.Client.OracleConnection 连接等多种连接方式。 一、 Oracle...
SAP与Oracle数据库的连接 SAP系统与Oracle数据库的连接是SAP开发中的一个重要步骤,该连接允许SAP系统访问Oracle数据库中的数据,实现数据交换和共享。在本文中,我们将详细介绍SAP开发中模块连接Oracle数据库的...
Oracle数据库连接包通常指的是JDBC(Java Database Connectivity)驱动,它是Oracle公司为Java开发的接口,使得Java应用程序能够与Oracle数据库进行通信。JDBC驱动分为四种类型:Type 1、Type 2、Type 3和Type 4,...
DataBaseHelper帮助类中包含了默认的连接字符串格式,修改完IP和用户名密码就可以使用,也可以在连接的时候直接输入连接字符串和sql语句。可以直接使用release下的exe 建议使用升级过的版本:...