数据库&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
相关推荐
神王宝宝 王者小学7 小时前
HBase: 看上去很美
大数据·数据库·hbase
io无心8 小时前
Shardingsphere5分库分表
数据库·mysql
wWYy.8 小时前
Mysql:主键索引 唯一索引 普通索引 前缀索引
数据库·mysql
宝杰X79 小时前
Android Room3 多平台数据库
android·数据库
sky_81061312 小时前
Oracle ERP 各模块业务管理功能及底层表说明
数据库·oracle
YMatrix 官方技术社区13 小时前
CittaBase vs. Neo4j :原生图性能实测与混合检索实践
数据库·功能测试·ymatrix
闲猫14 小时前
LangChain / Integrations / Integrations by component / Tool
java·数据库·langchain
xqqxqxxq14 小时前
SQL 连接查询技术笔记
数据库·笔记·sql
Databend15 小时前
从万亿级大模型到全线应用:Databend Cloud 助力头部 AI 企业构建全链路 Trace 数据管道
大数据·数据库·sql
MC皮蛋侠客15 小时前
SQLAlchemy 系列(十一):从 1.x 到 2.x——渐进迁移与数据访问层治理
数据库·python