一、内连接和外连接
内连接用于返回满足连接条件的记录;而外连接则是内连接的扩展,它不仅会满足连接条件的记录,而且还会返回不满足连接条件的记录,语法如下:
select table1.column,table2.column from table1 [inner|left|right|full]join table2 on table1.column=table2.column;
inner join表示内连接、left join表示左外连接、right join表示右外连接、full join表示全连接;on用于指定连接条件。
注意:如果使用form内、外连接,则必须使用on操作符指定连接条件;如果使用(+)操作符连接,则必须使用where指定连接条件。
1、内连接
内连接查询返回满足条件的所有记录,默认情况下没有指定任何连接则为内连接,例如:
select t1.name,t2.name from cip_temps t1 inner join cip_tmp t2 on t1.ID=t2.id;
2、左外连接
左外连接查询不仅返回满足条件的所有记录,而且还会返回不满足连接条件的连接操作符左边表的其他行,例如:
select t1.name,t2.name from cip_temps t1 left join cip_tmp t2 on t1.ID=t2.id;
3、右外连接
右外连接查询不仅返回满足调价的所有记录,而且还会返回不满足连接条件的连接操作符右边表的其他行,例如:
select t1.name,t2.name from cip_temps t1 right join cip_tmp t2 on t1.ID=t2.id;
4、全连接
全连接查询不仅返回满足调价的所有记录,而且还会返回不满足连接条件的其他行,例如:
select t1.name,t2.name from cip_temps t1 full join cip_tmp t2 on t1.ID=t2.id;
5、(+)操作符
在oracle9i之前,当执行外连接时,都是使用连接操作符(+)来完成的,尽管可以使用操作符(+)执行外连接操作,但是oracle9i开始oracle建议使用outer join执行外连接,使用(+)操作符执行外连接的语法如下:
select table1.column,table2.column from table1,table2 where table1.column(+)=table2.column;
注意:
- 当使用(+)操作符执行外连接时,应当将该操作符放在显示较少行(完全满足连接条件行)一端。
- (+)操作符只能出现在where子句中,并且不能与outer join语法同时使用。
- 当使用(+)操作符执行外连接时,如果在where语句中包含多个条件,则必须在所有的条件中都包含(+)操作符。
- (+)操作符只能适用于列,而不能适用于表达式。
- (+)操作符不能与or和in操作符一起使用。
- (+)操作符只能用于左外连接和右外连接,不能用于实现完全连接。
(1)、使用(+)操作符执行左外连接
当使用左外连接时,不仅会返回满足连接条件的所有行,而且还会返回不满足连接条件的左边边的其他行。因为(+)操作符要放到行数较少的一端,所以在where子句中应当将该操作符放到右边表的一端,示例如下:
select t1.name,t2.name from cip_temps t1,cip_tmp t2 where t1.ID=t2.id(+);
(2)、使用(+)操作符执行右外连接
当使用右外连接时,不仅会返回满足连接条件的所有行,而且还会返回不满足连接条件的右边边的其他行。因为(+)操作符要放到行数较少的一端,所以在where子句中应当将该操作符放到左边表的一端,示例如下:
select t1.name,t2.name from cip_temps t1,cip_tmp t2 where t1.ID(+)=t2.id;
分享到:
相关推荐
Oracle SQL语句是数据库开发中的基础工具,它用于在Oracle数据库中进行数据查询、更新、删除等操作。本文主要探讨了几个重要的SQL概念和技术,包括`DISTINCT`、`NULL`处理、字符串连接以及`LIKE`操作符的使用。 1. ...
ORACLE__SQL语句教学 ORACLE__SQL语句教学
在Oracle数据库系统中,`V$SQLAREA` 是一个非常重要的动态性能视图,它提供了关于解析、编译和执行的SQL语句的详细信息。这个视图是DBA和性能调优专家用来监控和分析SQL性能的关键工具。标题中的"oracle_V$SQLAREA_....
本资源"ORACLE__SQL语句教学(附有sql最常用经典语句)"显然是一个针对Oracle SQL的深入学习资料,旨在帮助数据库编程者提升技能,成为真正的高手。 首先,让我们来看看SQL的基本概念。SQL是一种用于管理关系型...
3. **连接查询**:Oracle的JOIN语法允许在ON条件中使用子查询,而在MySQL中,子查询通常需要移到FROM或WHERE子句中。 4. **游标**:Oracle SQL支持游标,MySQL则不直接支持,需要使用存储过程或临时表来实现类似...
在"oracle常用命令集.sql"中,可能包含了如DML(INSERT、UPDATE、DELETE)语句,DDL(CREATE、ALTER、DROP)语句,以及查询优化技巧,例如使用索引、子查询、联接操作等。 4. 数据库操作实例 描述中的"oracle常用...
Oracle PL/SQL是Oracle数据库系统中的重要组成部分,它是一种结合了SQL查询语言和过程化编程元素的编程语言,专门用于在Oracle环境中进行数据库管理和应用程序开发。这个“Oracle PL-SQL.rar”压缩包提供了针对初学...
### Oracle 查看当前会话执行的SQL语句 在Oracle数据库管理中,有时我们需要了解某个特定会话(Session)正在执行哪些SQL语句。这在性能调优、问题诊断等场景下尤为重要。以下将详细介绍如何通过不同的方法来查看...
批处理文件(如.bat文件)在Windows环境中是一种高效的方式,可以自动化执行一系列命令,包括连接数据库和执行SQL语句。在这个场景中,我们可以利用批处理文件来简化Oracle数据库的操作,如删除用户、创建用户、创建...
本文详细介绍了如何使用 Oracle SQL Developer 和其他开发工具,包括 Oracle Database Home Page 的使用方法、如何在 Oracle 中使用 SQL*Plus、如何使用 SQL Developer 操作 Oracle 数据库以及如何执行 SQL 语句等...
首先,Oracle SQL与标准SQL略有不同,它包含了一些特定于Oracle的功能,如子查询、连接操作、游标、函数和存储过程等。`SQL(oracle).doc`很可能是一份详细的文档,涵盖了这些主题。例如,它可能详细讲解了如何使用...
通常,我们会创建一个QSqlQuery对象来执行SQL语句,利用QSqlQuery::exec()方法执行查询,然后使用QSqlQuery::next()遍历结果集。此外,QSqlRecord可以用来获取和处理查询结果中的每一行数据。 在测试过程中,可能...
### Oracle监听执行SQL语句详解 #### 一、Oracle监听执行概述 在Oracle数据库管理与维护过程中,有时候我们需要了解应用程序正在执行哪些SQL语句,这不仅有助于性能优化,还可以帮助我们诊断潜在的问题。通过监听...
- **SQL语句类型**:包括SELECT用于查询,INSERT用于插入,UPDATE用于更新,DELETE用于删除记录等。 - **子查询与连接**:理解如何使用子查询和不同类型的连接(内连接、外连接、自连接)来处理复杂的数据关系。 ...