[数据库基础]——图解JOIN

简介: 原文 http://www.cnblogs.com/BoyceYang/p/3145279.html 阅读导航 一、概要 二、JOIN分类 三、JOIN分类详解 一、概要 JOIN对于接触过数据库的人,这个词都不陌生,而且很多人很清楚各种JOIN,还有很多人对这个理解也不是很透彻,这次就说说JOIN操作。

原文 http://www.cnblogs.com/BoyceYang/p/3145279.html

阅读导航

一、概要

二、JOIN分类

三、JOIN分类详解

一、概要

JOIN对于接触过数据库的人,这个词都不陌生,而且很多人很清楚各种JOIN,还有很多人对这个理解也不是很透彻,这次就说说JOIN操作。

图片是很容易被接受和理解,所以尝试使用图片来说明一下。

二、JOIN分类

客官:小二,上JOIN分类!

……

小二:客官,新鲜出炉的JOIN分类图片来喽。

JOIN

三、JOIN分类详解

客官:小二,速速详细道来!

小二:现在让小二来给您详细介绍。

INNER JOIN

仅仅返回两个表中,匹配列相同的列值,所在行的数据。

InnerJOIN

SELECT * FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Col1 = t2.Col1

 

LEFT OUTER JOIN

左外连接:返回左表的所有数据,并且在右表中不能匹配的列值,其坐在行则使用空值。

LEFTOUTERJOIN

SELECT * FROM Tables1 t1 LEFT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

 

LEFT OUTER JOIN - WHERE NULL

返回和右表不匹配的所有数据行

LEFTOUTERJOIN-WHERENULL

SELECT * FROM Table1 t1 LEFT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t2.Col1 IS NULL

 

RIGHT OUTER JOIN

右外连接:返回右表的所有数据,并且在左表中不能匹配的列值,其所做在行则使用空值。

RIGHTOUTERJOIN

SELECT * FROM Tables1 t1 RIGHT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

 

 

RIGHT OUTER JOIN – WHERE NULL

返回和左表不匹配的所有数据行

RIGHTOUTERJOINWHERENULL

SELECT * FROM Table1 t1 RIGHT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t2.Col1 IS NULL

 

 

FULL OUTER JOIN

完全连接可看作是左外连接和右外连接结果之和,返回两个表的所有数据,如果匹配列的值在两个表中匹配,那么返回数据行,否则返回空值。

FULLOUTERJOIN

SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 

 

FULL OUTER JOIN – WHERE NULL

返回内连接以外的数据行,即匹配列坐在行以外的所有数据。

FULLOUTERJOINWHERENULL

SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.ID = t2.ID WHERE t1.ID IS NULL OR t2.ID IS NULL

 

CROSS JOIN:

交叉连接不需要任何连接条件。这个会把两个表的的数据进行笛卡尔积操作。

CrossJOIN

SELECT * FROM Table1 t1 CROSS JOIN Table2 t2

 

小二:小二已经介绍完毕,客官,请慢用。准备洗漱睡觉了。

谢谢@slice指出错误语句。

在此谢谢读完这篇博客,有什么写的不对的地方请指正

有帮助就推荐下,有感想就写下留言,不满意也写下留言,有问题就更正。

目录
相关文章
|
8月前
|
SQL Oracle 关系型数据库
解决:Oracle数据库中Left join on 后面为null时匹配不上
解决:Oracle数据库中Left join on 后面为null时匹配不上
122 0
|
SQL 弹性计算 关系型数据库
HTAP数据库 PostgreSQL 场景与性能测试之 3.1 - (OLAP) 大表JOIN统计查询-10亿 join 1亿 agg
标签 PostgreSQL , HTAP , OLTP , OLAP , 场景与性能测试 背景 PostgreSQL是一个历史悠久的数据库,历史可以追溯到1973年,最早由2014计算机图灵奖得主,关系数据库的鼻祖Michael_Stonebraker 操刀设计,PostgreSQL具备与Oracle类似的功能、性能、架构以及稳定性。 PostgreSQL社区的贡献者众多
1810 0
|
4月前
|
关系型数据库 MySQL 数据库
MySQL 数据库操作指南:LIMIT,OFFSET 和 JOIN 的使用
您可以通过使用"LIMIT"语句来限制查询返回的记录数量。以下是一个示例,获取您自己的Python服务器中"customers"表中的前5条记录:
94 1
|
6月前
|
SQL 存储 分布式计算
【数据库评测】多表联合join零耗时——翰云数据库在国产龙芯硬件上的表现
【数据库评测】多表联合join零耗时——翰云数据库在国产龙芯硬件上的表现
58 0
|
8月前
|
Oracle 关系型数据库 数据库
一篇文章带你了解Oracle 数据库中 CROSS JOIN(cross join) 语法的作用
一篇文章带你了解Oracle 数据库中 CROSS JOIN(cross join) 语法的作用
305 0
|
9月前
|
存储 数据库
【数据库评测】揭秘 Cloudwave 4.0 版本多表联合join零耗时(二)
【数据库评测】揭秘 Cloudwave 4.0 版本多表联合join零耗时(二)
61 0
|
9月前
|
SQL 算法 Cloud Native
【数据库评测】揭秘 Cloudwave 4.0 版本多表联合join零耗时
【数据库评测】揭秘 Cloudwave 4.0 版本多表联合join零耗时
120 0
|
9月前
|
存储 关系型数据库 MySQL
MySQL数据库第十课-------join连接的再续------强强连锁
MySQL数据库第十课-------join连接的再续------强强连锁
|
9月前
|
SQL 关系型数据库 MySQL
MySQL数据库第九课--------join连接四件套------不错的哦哦哦
MySQL数据库第九课--------join连接四件套------不错的哦哦哦
|
10月前
|
SQL 算法 Cloud Native
数据库内核那些事|细说PolarDB优化器查询变换 - join消除篇
数据库的查询优化器是整个系统的"大脑",一条SQL语句执行是否高效在不同的优化决策下可能会产生几个数量级的性能差异,因此优化器也是数据库系统中最为核心的组件和竞争力之一。阿里云瑶池旗下的云原生数据库PolarDB MySQL版作为领先的云原生数据库,希望能够应对广泛用户场景、承接各类用户负载,助力企业数据业务持续在线、数据价值不断放大,因此对优化器能力的打磨是必须要做的工作之一。 本系列将从PolarDB for MySQL的查询变换能力开始,介绍我们在这个优化器方向上逐步积累的一些工作。
11356 0