数据库&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
相关推荐
如意机反光镜裸33 分钟前
如何快速将Excel数据导入到SQL Server数据库
数据库
不爱学习的啊Biao1 小时前
初识mysql数据库
数据库·mysql·oracle
执键行天涯1 小时前
【日常经验】修改大数据量的表字段类型,怎么修改更快
sql
宛唐羁客2 小时前
ODBC连接PostgreSQL数据库后,网卡DOWN后,客户端进程阻塞问题解决方法
网络·数据库
sevevty-seven2 小时前
幻读是什么?用什么隔离级别可以防止幻读
大数据·sql
吴半杯2 小时前
Redis-monitor安装与配置
数据库·redis·缓存
是桃萌萌鸭~3 小时前
mysqldbcompare 使用及参数详解
数据库·mysql
gma9993 小时前
brpc 与 Etcd 二次封装
数据库·c++·rpc·etcd
Yz98763 小时前
hive复杂数据类型Array & Map & Struct & 炸裂函数explode
大数据·数据库·数据仓库·hive·hadoop·数据库开发·big data
小鹿撞出了脑震荡4 小时前
SQLite3语句以及用实现FMDB数据存储的学习
数据库·学习·sqlite