`

oracle join关键字使用总结

 
阅读更多
1.内连接:选出两个表中所有符合连接条件的row构成的集合。
2.外连接:分为LEFT、RIGHT、FULL三种:
如有R与S做连接,那么LEFT是所有满足条件的row以及所有在R属性对应值在S中为NULL的集合。 注意(left join 是 left outer join  简写
RIGHT是所有满足条件的row以及所有在S属性对应值在R中为NULL的集合
FULL是所有满足条件的row以及任何在R或S中出现NULL的集合。
现在可以看到,三种外连接的区别就在于对空值的处理不同(空值真是数据库的一大困难)。

假设我们有下面两张表。表A在左边,表B在右边。我们给它们各四条记录。

id name     id name
-- ----     -- ----
1 Pirate    1 Rutabaga
2 Monkey    2 Pirate
3 Ninja     3 Darth Vader
4 Spaghetti 4 Ninja


我们用过name字段用几种不同方式把这些表联合起来,看能否得到和那些漂亮的韦恩图在概念上的匹配。

SELECT * FROM TableA
INNER JOIN TableB
ON TableA.name = TableB.name  ;


id name  id name
-- ----  -- ----
1 Pirate 2  Pirate
3 Ninja  4  Ninja


内联合(inner join)只生成同时匹配表A和表B的记录集。(如下图)



SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name ;


id name  id name
-- ----  -- ----
1 Pirate 2 Pirate
2 Monkey null null
3 Ninja  4 Ninja
4 Spaghetti null null
null null 1 Rutabaga 
null null 3 Darth Vader


全外联合(full outer join)生成表A和表B里的记录全集,包括两边都匹配的记录。如果有一边没有匹配的,缺失的这一边为null。(如下图)



SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name ;


id name id name
-- ---- -- ----
1 Pirate 2 Pirate
2 Monkey null null
3 Ninja 4 Ninja
4 Spaghetti null null


左外联合(left outer join)生成表A的所有记录,包括在表B里匹配的记录。如果没有匹配的,右边将是null。(如下图)



总结图:





参考:http://chuansongme.com/n/481377




  • 大小: 5.1 KB
  • 大小: 3.7 KB
  • 大小: 5 KB
  • 大小: 100.4 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Explain关键字详解.pdf

    Explain关键字的使用非常广泛,它不仅可以用于SELECT语句,还可以用于DELETE、INSERT、REPLACE和UPDATE语句。通过分析Explain的输出结果,我们可以找到影响查询性能的瓶颈,优化查询语句,提高数据库操作的效率。

    oracle数据库所有操作总结.doc

    这篇文档"Oracle数据库所有操作总结.doc"主要涵盖了Oracle中的查询语句和其他基本操作,对于熟悉和使用Oracle数据库非常有帮助。以下是对这些知识点的详细解释: 1. **查询语句**:基本的查询语句使用`SELECT`...

    oracle 连接 join at

    在Java、Python等编程语言中,我们可以使用JDBC或ODBC驱动程序来连接Oracle数据库,并执行JOIN操作。以下是一个Java的JDBC示例: ```java Statement stmt = conn.createStatement(); String sql = "SELECT * FROM ...

    东软oracle-在线-期中考试一.docx

    9. 名词解释页脚内容 9:可以使用FULL OUTER JOIN关键字来创建全外部联接。使用CROSS JOIN关键字可以创建笛卡尔积联接。 10. 名词解释页脚内容 10:可以使用自联接来连接同一个表中的不同行。使用非等值联接可以...

    left-right-join.zip_join_oracle

    左外连接返回左表(即在连接语句中位于JOIN关键字之前的表)的所有记录,即使右表没有匹配的记录。对于左表中没有匹配的记录,结果集将填充NULL值。简单来说,如果你关心的是左表的所有信息,不论右表是否有关联...

    oracle简单查找知识总结

    ### Oracle简单查找知识总结 #### 1. 基本SQL语法结构 在Oracle数据库中执行简单的数据查找时,SQL语句通常按照以下顺序构建: - `FROM`:指定查询的数据表。 - `WHERE`:添加筛选条件。 - `SELECT`:选择需要返回...

    oracle的总结 很详细的 基础也有

    例如,通过JOIN操作连接多个表,使用GROUP BY和HAVING进行分组统计,以及使用子查询进行嵌套查询等。Oracle数据库的强大还体现在其丰富的索引策略、事务管理、视图、存储过程、触发器等高级特性,这些都是数据库管理...

    Oracle和MySQL语句区别.doc

    然而,在Oracle中,需要使用FROM关键字来指定连接表,而在MySQL中,则使用JOIN关键字。 Subquery语句 Subquery语句用于在Select语句中嵌套另一个查询语句。Oracle和MySQL都支持Subquery语句,但是它们在使用...

    09.Oracle的order by关键字1

    在 Oracle 数据库中,`ORDER BY` 是一个重要的 SQL 关键字,用于对查询结果集进行排序。在本文中,我们将深入理解 `ORDER BY` 的使用方法,并通过具体示例来展示其功能。 首先,我们需要了解如何创建和填充数据表。...

    Oracle连接多个表PPT教案.pptx

    在Oracle中,笛卡尔连接可以通过两种方式实现:传统方法和使用JOIN关键字。传统的笛卡尔连接查询是通过在FROM子句中同时列出两个表,并在WHERE子句中不设置任何连接条件来完成。而使用JOIN关键字,我们可以明确地...

    sql join( inner join, outer join) 分析

    JOIN关键字是SQL查询中的关键部分,它允许我们在不同的表之间建立联系,以获取更丰富的信息。在这个主题中,我们将深入探讨INNER JOIN和OUTER JOIN,它们是JOIN的两种主要类型。 首先,我们来看INNER JOIN。INNER ...

    DBA对Oracle SQL编写规范的总结

    ### DBA对Oracle SQL编写规范的总结 #### 一、引言 在Oracle数据库开发过程中,遵循一套标准化的SQL编写规范对于提升代码质量、增强可读性和可维护性至关重要。本文档由一位经验丰富的数据库管理员(DBA)撰写,旨在...

    Sql 语句详解

    17. SQL INNER JOIN 关键字 22 18. SQL LEFT JOIN 关键字 23 19. SQL RIGHT JOIN 关键字 24 20. SQL UNION 和 UNION ALL 操作符 26 21. SQL SELECT INTO 语句 28 22. SQL CREATE DATABASE 语句 29 23. SQL CREATE ...

    oracle基础的语句教程

    使用JOIN关键字,结合ON子句来定义连接条件。例如,如果你有两个表,一个是员工表,一个是部门表,你可以找出所有部门和对应员工的信息。 三、外连接 外连接分为左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接...

    ORACLE数据库学习总结可用.pdf

    3. 多表查询:使用`JOIN`关键字连接多个表,如`INNER JOIN`、`LEFT JOIN`、`RIGHT JOIN`和`FULL OUTER JOIN`。 4. 列函数和分组:`GROUP BY`用于对数据进行分组,`AVG()`、`COUNT()`、`MAX()`、`MIN()`等聚合函数...

    oracle题库3教程教程教程教程教程教程教程教程教程教

    使用JOIN关键字与 (+) 结合,不符合Oracle语法规范。 - C. 同样使用了JOIN关键字与 (+) 结合,语法不正确。 - D. 使用了RIGHT OUTER JOIN,但应使用LEFT OUTER JOIN来确保返回所有员工记录。 - E. 错误地将 (+) ...

    Oracle 子查询

    - **`ANY`/`SOME`**:这两个关键字在使用上基本相同,表示“任一”,即与最小值或其中之一进行比较。例如,查找薪水高于部门30中任一员工的员工信息: ```sql SELECT * FROM empt WHERE t.sal > ANY(SELECT sal ...

    达梦和oracle的差异说明

    通过以上分析可以看出,尽管达梦数据库旨在兼容Oracle的部分功能,但在实际应用中仍需注意两者之间的差异,特别是在字段名处理、数据类型使用、语法关键字等方面。了解这些差异有助于更好地利用这两种数据库系统,并...

    Oracle Database 11g - SQL Fundamentals I

    5. 表连接:学习不同类型的表连接,如内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN),以及使用JOIN关键字进行多表查询。 6. 高级查询:掌握使用WHERE子句进行条件筛选,...

    Oracle树查询总结

    使用 `START WITH ID=某个特定值` 定义起始节点,然后 `CONNECT BY parent_id = PRIOR ID` 指示 Oracle 从当前节点开始,逐层查找所有子节点,直至找到所有后代。 4. **查找一个节点的直属父节点(父亲)** 通过 ...

Global site tag (gtag.js) - Google Analytics