MySQL Joins 学习笔记

MySQL Joins 学习笔记

1. Join 基础

在数据库中,JOIN 是一种查询,它允许你从两个或多个表中检索数据。这些表通过共同的字段(通常称为键)连接在一起。

1.1 Inner Join(内连接)

  • 只返回两个表中有匹配的行。
  • 如果没有匹配,则不返回任何内容。

1.2 Outer Join(外连接)

  • 包括左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)和全外连接(FULL JOIN)。
  • 至少返回一个表中的所有行,即使在另一个表中没有匹配。

2. Left Join(左外连接)

  • 返回左表(LEFT JOIN 后面的表)的所有行,即使在右表中没有匹配。
  • 如果左表中的行在右表中没有匹配,那么右表的部分将包含 NULL。

2.1 效率

  • 在某些情况下,左外连接可能比内连接更高效,因为它可以避免对右表进行全表扫描。

3. Right Join(右外连接)

  • 类似于左外连接,但返回右表的所有行。
  • 如果右表中的行在左表中没有匹配,那么左表的部分将包含 NULL。

4. Full Join(全外连接)

  • 返回两个表中所有的行。
  • 如果某行在另一个表中没有匹配,则相应部分包含 NULL。

5. 自连接(Self Join)

  • 表可以与自身连接,通常用于处理具有层次结构的数据。

6. 连接的效率

  • 连接操作的效率取决于数据库的索引、表的大小和数据库管理系统的优化。
  • 使用索引的字段作为连接条件可以显著提高查询效率。

7. 实际应用

  • 在处理复杂的数据关系时,理解不同类型的连接及其效率至关重要。
  • 优化查询通常涉及到选择正确的连接类型和确保适当的索引。

8. 示例

-- 内连接示例
SELECT *
FROM TableA
INNER JOIN TableB ON TableA.key = TableB.key;

-- 左外连接示例
SELECT *
FROM TableA
LEFT JOIN TableB ON TableA.key = TableB.key;

-- 右外连接示例
SELECT *
FROM TableA
RIGHT JOIN TableB ON TableA.key = TableB.key;

-- 全外连接示例
SELECT *
FROM TableA
FULL JOIN TableB ON TableA.key = TableB.key;

相关推荐

  1. 学习笔记

    2024-03-15 15:34:03       29 阅读
  2. 学习笔记:机器学习

    2024-03-15 15:34:03       79 阅读
  3. 【OpenCV学习笔记】- 学习笔记目录

    2024-03-15 15:34:03       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 15:34:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 15:34:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 15:34:03       87 阅读
  4. Python语言-面向对象

    2024-03-15 15:34:03       96 阅读

热门阅读

  1. Oracle EMCC数据库集中管理平台安装配置与使用

    2024-03-15 15:34:03       45 阅读
  2. 力扣_动态规划2—乘积最大的子数组

    2024-03-15 15:34:03       45 阅读
  3. TextView 中实现打印效果并且可以换行

    2024-03-15 15:34:03       45 阅读
  4. leetcode257.二叉树的所有路径

    2024-03-15 15:34:03       42 阅读
  5. 【25届秋招备战C++】算法篇-贪心算法(Greedy)

    2024-03-15 15:34:03       48 阅读
  6. 八数码(A*算法)+单词接龙(DFS)

    2024-03-15 15:34:03       42 阅读
  7. Go语言中的面向对象编程(OOP)

    2024-03-15 15:34:03       49 阅读
  8. Nginx:配置拦截/禁用ip地址

    2024-03-15 15:34:03       44 阅读
  9. 【Mysql事务】

    2024-03-15 15:34:03       40 阅读
  10. React Fiber的原理

    2024-03-15 15:34:03       42 阅读