数据库&SQL——连接表达式(JOIN)图解

目录

一、基本概念

二、常见类型

[内连接(INNER JOIN):](#内连接(INNER JOIN):)

[左连接(LEFT JOIN 或 LEFT OUTER JOIN):](#左连接(LEFT JOIN 或 LEFT OUTER JOIN):)

[右连接(RIGHT JOIN 或 RIGHT OUTER JOIN):](#右连接(RIGHT JOIN 或 RIGHT OUTER JOIN):)

[全连接(FULL JOIN 或 FULL OUTER JOIN):](#全连接(FULL JOIN 或 FULL OUTER JOIN):)

[自然连接(NATURAL JOIN):](#自然连接(NATURAL JOIN):)

[交叉连接(CROSS JOIN):](#交叉连接(CROSS JOIN):)


数据库连接表达式是指用于在数据库查询中连接两个或多个表的表达式。这种表达式通常用于SQL(Structured Query Language)中,以实现数据的联合查询、数据整合等目的。

一、基本概念

数据库连接表达式是SQL中的一种重要语法,它允许用户根据一定的条件将两个或多个表连接起来,从而获取这些表中相关的数据。这种连接可以是基于表中的某个或多个共同属性(字段)进行的。

二、常见类型

内连接(INNER JOIN)
  • 含义:只返回两个表中满足连接条件的记录。
  • 示例:SELECT * FROM A INNER JOIN B ON A.key = B.key


2.

左连接(LEFT JOIN 或 LEFT OUTER JOIN)
  • 含义:返回左表中的所有记录,以及右表中满足连接条件的记录。如果右表中没有满足条件的记录,则结果中的右表部分会显示为NULL。

  • 示例:SELECT * FROM A LEFT JOIN B ON A.key = B.key

  • SELECT * FROM A LEFT JOIN B ON A.key = B.key WHERE B.key is NULL

右连接(RIGHT JOIN 或 RIGHT OUTER JOIN)
  • 含义:返回右表中的所有记录,以及左表中满足连接条件的记录。如果左表中没有满足条件的记录,则结果中的左表部分会显示为NULL。

  • 示例:SELECT * FROM A RIGHT JOIN B ON A.key = B.key

  • SELECT * FROM A RIGHT JOIN B ON A.key = B.key WHERE B.key is NULL

全连接(FULL JOIN 或 FULL OUTER JOIN)
  • 含义:返回两个表中所有的记录,无论是否满足连接条件。如果某个表中没有满足条件的记录,则结果中的对应部分会显示为NULL。

  • 示例:SELECT * FROM A FULL JOIN B ON A.key = B.key (注意:并非所有数据库系统都支持FULL JOIN)。

  • SELECT * FROM A FULL JOIN B ON A.key = B.key WHERE A.key is NULL OR B.key is NULL

自然连接(NATURAL JOIN)
  • 含义:基于两个表中具有相同名称和相同数据类型的列自动进行连接。自然连接会消除结果中的重复列。
  • 示例:SELECT * FROM A NATURAL JOIN B
交叉连接(CROSS JOIN)
  • 含义:返回两个表的笛卡尔积,即两个表中所有记录的组合。
  • 示例:SELECT * FROM 表1 CROSS JOIN 表2
相关推荐
疯狂打码的少年18 分钟前
【软件工程】需求工程:需求获取与需求分析
数据库·笔记·软件工程·需求分析
Database_Cool_19 分钟前
阿里云 PolarDB-X vs TiDB 分布式数据库选型指南
数据库·分布式·阿里云·tidb
数据库小学妹20 分钟前
分布式数据库架构怎么选?三种路线对比+迁移避坑指南
数据库·分布式·分布式数据库·数据库架构·数据迁移·数据库选型
桑榆肖物38 分钟前
在 .NET MAUI 里接入 PP-OCRv6 文本检测实现查找并点击
数据库·redis·.net·maui
味悲1 小时前
SQL注入从入门到实战
数据库·sql·安全
KaMeidebaby1 小时前
卡梅德生物技术快报|兔单克隆抗体:噬菌体 Fab 免疫文库搭建实操:兔单克隆抗体重组构建完整参数
前端·网络·数据库·人工智能·算法
复园电子4 小时前
企业级PDF批量盖章方案选型指南
数据库·pdf
AI-好学者11 小时前
阶段一-图数据库基础与PropertyGraph模型
数据库·rag·knowledge graph·graphrag
其实防守也摸鱼12 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚12 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库