`
kalogen
  • 浏览: 880235 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

oracle连接查询sql 内连接 外连接 全连接

阅读更多

oracle中的连接可分为,内连接(inner join)、外连接(outer join)、全连接(full join),不光是Oracle,其他很多的数据库也都有这3种连接查询方式

  1. 内连接inner join,这是我们经常用的查询方式,比如select * from A inner join B on A.field1=B.field2,个人认为,这样的内连接查询与下面的查询等效,select * from A,B where A.field1=B.field2,内连接查询只能查询出匹配的记录,匹配不上的记录时无法查询出来的
  2. 外连接outer join,可进一步分为左外连接left outer join和右外连接right outer join,具体说一下左外连接和右外连接查询的特点,有2个表,部门表和职工表,一个部门下可以有多个职工,一个职工只能对应一个部门,所以部门和职工时1对多的关系,设计表如下

部门表dept

 

deptid deptName
1 开发部
2 财务部
3 人事部

 

职工表employee

 

eid deptid eName
1 1 刘德华
2 1 张惠妹
3 5 张学友

 

比如现在有需求1,要进行部门表和职工表的关联查询,并要查询出所有的部门信息,这时候,下面的左连接查询就能够查询出想要的结果,左连接就是以left join前面的表为主表,即使有些记录关联不上,主表的信息能够查询出来的

select * from dept left outer join employee on dept.deptid=employee.deptid

 

比如现在有需求2,要进行部门表和职工表的关联查询,并要查询出所有的职工信息,这时候,下面的右连接查询就能够查询出想要的结果,右连接就是以right join后面的表为主表,即使有些记录关联不上,主表的信息能够查询出来

select * from dept right outer join employee on dept.deptid=employee.deptid

 

在介绍另外的一种写法,同样达到外连接的效果,大家可以尝试使用。比如在需求1中,下面的查询语句与需求1中给出的左连接语句等效!

select * from dept ,employee where dept.deptid=employee.deptid(+)

 

总之,外连接就是在关联不上的时候,把其中的部分信息查询出来

 

       3.全连接full join,语法为full join ... on ...,全连接的查询结果是左外连接和右外连接查询结果的并集,即使一些记录关联不上,也能够把部分信息查询出来

分享到:
评论

相关推荐

    sql_server连接Oracle方法(最全)

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

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

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

    Oracle SQL连接查询总结.docx

    ### Oracle SQL连接查询总结 #### 一、概述 在Oracle SQL中,连接查询是一种非常重要的技术,用于结合两个或多个表中的数据。连接查询能够帮助我们处理复杂的数据关系,提取出满足特定条件的信息。根据连接的方式...

    sql左连接,右连接,内连接,全连接讲解

    sql左连接,右连接,内连接,全连接详细讲解

    oracle常用经典sql查询.rar

    本压缩包“oracle常用经典sql查询.rar”显然是一份关于如何在Oracle环境中高效运用SQL查询的教程资料,适合数据库管理员、开发人员以及对Oracle数据库感兴趣的用户学习。 首先,我们来探讨SQL的基础概念。SQL,全称...

    SQL之左连接、右连接和全连接.doc

    全连接也称为全外连接,用于从两个表中检索所有记录,返回两个表中的所有记录,包括匹配和不匹配的记录。全连接的基本语法为: SELECT * FROM 左侧表 FULL JOIN 右侧表 ON 左侧表.列名 = 右侧表.列名 全连接的应用...

    易语言连接ORACLE数据库查询报表

    在易语言中连接ORACLE数据库并进行查询报表是常见的操作,这对于数据管理和分析至关重要。ORACLE数据库作为全球知名的大型关系型数据库管理系统,广泛应用于企业和组织的数据存储与管理。 首先,你需要了解如何在...

    理解oracle中的外连接

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

    Oracle-SQL语句(连接查询).doc

    ### Oracle-SQL语句(连接查询) #### 数据库连接查询详解 在数据库管理与操作过程中,连接查询(Join)是一项非常重要的技术,特别是在处理多表数据时。通过连接查询,可以将不同表中的数据组合起来,形成更加完整...

    高清完整版 Oracle 高性能SQL引擎剖析SQL优化与调优机制详解

    通过分析执行计划,可以了解SQL语句的执行路径,包括如何访问数据(全表扫描、索引扫描等)、如何进行数据排序、连接等操作。掌握这些信息对优化SQL语句至关重要。 此外,Oracle提供了丰富的SQL调优工具和方法。...

    Oracle SQL常用脚本

    全连接(FULL OUTER JOIN)则会返回两个表中所有匹配和不匹配的记录。这种连接在实际应用中相对较少,因为Oracle不直接支持全外连接,但可以通过结合左右外连接实现类似效果。 以上就是“Oracle SQL常用脚本”涉及...

    Oracle 数据库连接查询SQL语句

    Oracle 数据库连接查询是数据库操作中的重要组成部分,用于合并来自两个或更多表的数据。以下是关于Oracle数据库连接查询的详细说明: 1. 内连接(Inner Join): 内连接只返回那些在连接条件中匹配的记录,即两个...

    oracle 数据库,在C++中用连接池实现高速连接与访问.rar

    四、在C++中实现Oracle连接池 1. 初始化:首先,需要初始化环境和会话,设置必要的参数,如数据库服务器地址、端口、用户名、密码等。 2. 创建连接池:通过oci池化函数ociPoolCreate创建连接池,指定最小、最大连接...

    oracle之SQL优化

    - **连接类型**:内连接、外连接(左、右、全),以及自连接。 - **连接顺序**:Oracle会尝试优化连接顺序,但合理指定连接顺序(使用`JOIN ORDER` hint)可能更有效。 - **并行查询**:通过并行执行计划,可以...

    SQLserver2012链接Oracle数据库操作说明.docx

    通过上述步骤,我们可以实现 SQL Server 2012 与 Oracle 数据库之间的有效连接,并能够执行基本的数据查询操作。这对于需要在不同数据库平台之间交换数据的应用场景非常有用。同时,我们也需要注意维护系统的安全性...

    oracle常用经典SQL查询方案

    根据给定的文件信息,以下是对“oracle常用经典SQL查询方案”的详细解析,涉及的知识点主要包括Oracle数据库中的数据字典视图、空间管理、对象管理、版本查询、数据库模式、性能监控等方面。 ### 1. 查询表空间大小...

    C#.NET连接各类数据库(全)Oracle MySQL ACCESS SQLSERVER

    概述:本文将详细介绍 C#.NET 连接各种数据库的机制,包括 Oracle、MySQL、ACCESS、SQL Server 等。通过了解连接不同数据库的方法和参数,我们可以更好地应用 C#.NET 在数据库开发中。 一、C# 连接 SQL Server ...

Global site tag (gtag.js) - Google Analytics