图解数据库左连接、右连接、内连接、外连接、全连接的区别
创作时间:
作者:
@小白创作中心
图解数据库左连接、右连接、内连接、外连接、全连接的区别
引用
CSDN
1.
https://blog.csdn.net/qq_27184497/article/details/119672665
在数据库查询中,连接(Join)是一种常用的操作,用于从多个表中获取数据。不同的连接方式(如内连接、外连接、左连接、右连接和全连接)会根据特定的条件返回不同的结果集。本文将通过具体的SQL语句和示例数据表,详细解释这些连接方式的区别。
数据库连表方式
内连接:
INNERINNER JOIN外连接:
OUTER JOIN左外连接:
LEFT OUTER JOIN左连接:
LEFT JOIN右外连接:
RIGHT OUTER JOIN右连接:
RIGHT JOIN全连接:
FULL JOINUNION
准备
现在有2张表,A表和B表,数据和表结构如下:
内连接
内连接查询的是两张表的交集,也就是说只有当A表和B表中都存在匹配的数据时,才能查询出来。
以下三个查询的结果是一样的,针对上面的表数据,能查询出id为1、2、3的数据:
-- JOIN
SELECT * FROM A JOIN B ON A.id = B.id;
-- INNER JOIN
SELECT * FROM A INNER JOIN B ON A.id = B.id;
-- 逗号的连表方式就是内连接
SELECT * FROM A, B WHERE A.id = B.id;
左外连接 和 左连接
左外连接是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。
下面2个查询的结果是一样的,针对上面的表数据,能查询出id为1、2、3、4的数据:
-- LEFT JOIN
SELECT * FROM A LEFT JOIN B ON A.id = B.id;
-- LEFT OUTER JOIN
SELECT * FROM A LEFT OUTER JOIN B ON A.id = B.id;
右外连接 和 右连接
右外连接是以右表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将右表所有的查询信息列出,而左表只列出ON后条件与右表满足的部分。右连接全称为右外连接,是外连接的一种。
下面2个查询的结果是一样的,针对上面的表数据,能查询出id为1、2、3的数据:
-- RIGHT JOIN
SELECT * FROM A RIGHT JOIN B ON A.id = B.id;
-- RIGHT OUTER JOIN
SELECT * FROM A RIGHT OUTER JOIN B ON A.id = B.id;
全连接
全连接显示两侧表中所有满足检索条件的行。
Oracle的全连接
Oracle的全连接查询可以直接使用FULL JOIN:
SELECT * FROM A FULL JOIN B ON A.id = B.id;
MySQL的全连接
MySQL中没有FULL JOIN,可以通过UNION实现全连接:
SELECT * FROM A LEFT JOIN B ON A.id = B.id
UNION
SELECT * FROM A RIGHT JOIN B ON A.id = B.id;
热门推荐
有效消肿小妙招,助你快速恢复明亮动人眼睛状态
决定女人长相年轻的行为,睡眠第三,运动第二,第一个很多人做不到!
高速公路上如何跟车? 听老司机讲述最实用技巧!
一天中的血压什么时段最高?如何把高峰控制好?告诉你解决办法
用最巴萨的方式复仇两大强敌,弗里克成功封神
金命和土命生个什么宝宝好
公司裁员部门解散怎么赔偿
考驾照C1C2如何选择
抗肿瘤药物分级管理制度
神经损伤恢复的迹象
什么是供应商绩效评价的主要指标?
公墓管理办法建议
入门白茶,新手必学的10大知识点,能帮你避开很多大坑
主数据项目实施全解析:六阶段详细步骤与关键交付物
电机控制系统的热管理:揭秘永磁同步电机的散热技术
不想吃轻食的打工人,迷上了东北蘸酱菜
新生儿消化不良要少用尿不湿吗
海贼王官方资料:海军大将的4种正义之道,赤犬极端,青雉懒散
“网贷”还清后,征信要等多久才能恢复正常?内行人给出答案
饺子煮法大揭秘:不同种类饺子的完美煮制指南
显卡风扇转速过高噪声很大怎么办?
武夷岩茶四大名丛之铁罗汉
美国经济的韧性与衰退风险
【图像预处理的艺术】:5步提升OCR准确率,成为专家的秘诀
三十年核能示范田-大亚湾核电站
碳循环的基本过程是什么
舌尖上的中国——野生羊肚菌篇
儿童经颅磁治疗仪主要治疗什么
牛奶加鸡蛋早餐禁忌
Signa怎么知道被拉黑?