数据库&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
相关推荐
Code哈哈笑39 分钟前
【图书管理系统】用户注册系统实现详解
数据库·spring boot·后端·mybatis
2401_8370885040 分钟前
SQL性能分析
数据库·sql
瓜皮弟子头很铁41 分钟前
多项目共用SQL 添加需要字段
数据库·sql
冰茶_1 小时前
掌握LINQ:查询语法与方法语法全解析
sql·学习·microsoft·微软·c#·linq
CryptoRzz1 小时前
股票数据源对接技术指南:印度尼西亚、印度、韩国
数据库·python·金融·数据分析·区块链
Pluto_CSND1 小时前
hbase shell的常用命令
大数据·数据库·hbase
哈哈真棒1 小时前
sparkSQL读入csv文件写入mysql(2)
数据库·mysql
Cynicism_Smile2 小时前
Mysql 8.0.32 union all 创建视图后中文模糊查询失效
数据库·mysql
小oo呆2 小时前
【自然语言处理与大模型】向量数据库技术
数据库·人工智能·自然语言处理
Aurora_NeAr2 小时前
Redis设计与实现——Redis命令参考与高级特性
数据库·redis·缓存