数据库&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
相关推荐
小牛itbull16 分钟前
ReactPress 安装指南:从 MySQL 安装到项目启动
前端·javascript·数据库·mysql·react.js·开源·reactpress
来一杯龙舌兰25 分钟前
【MongoDB】MongoDB的集群,部署架构,OptLog,集群优化等详解
数据库·mongodb·集群·集群优化·optlog·部署架构
Gauss松鼠会29 分钟前
GaussDB部署架构
数据库·gaussdb
周星猩30 分钟前
linux 安装 mongodb
数据库·mongodb
尘浮生1 小时前
Java项目实战II基于微信小程序的原创音乐小程序(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·微信小程序·小程序·maven
Elastic 中国社区官方博客1 小时前
Elasticsearch 和 Kibana 8.16:Kibana 获得上下文和 BBQ 速度并节省开支!
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
晴天のVlog1 小时前
Fastapi使用MongoDB作为数据库
数据库·python·mongodb·fastapi
Desmend__1 小时前
正则表达式那些事儿
数据库·mysql·正则表达式
袁庭新2 小时前
LuaRocks如何安装数据库驱动?
java·数据库·redis·lua·luarocks·袁庭新
hummhumm2 小时前
第 10 章 - Go语言字符串操作
java·后端·python·sql·算法·golang·database