快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → SQL:sql连接那些事儿

SQL:sql连接那些事儿

时间:2022-09-18 19:20:56人气:作者:快盘下载我要评论

文章目录

前言一、Join是什么二、Join用法1.内连接自然连接相等连接 2.外连接LEFT JOIN;LEFT OUTER JOIN;RIGHT JOIN ;RIGHT OUTER JOIN;FULL JOIN;FULL OUTER JOIN;关于Join和WHERE的区别 动手实践及参考博客


前言

本篇针对sql中的连接相关概念进行一番整理

一、Join是什么

在Sql中;join;连接;存在的意义;就是将来自两个或多个表的行结合起来;返回多个表的查询结果;下面先用一张图直观地说明连接对搜索返回结果的影响
SQL:sql连接那些事儿

二、Join用法

1.内连接

内连接包括自然连接和相等连接
运算符;=、<> 之类的比较运算符
返回结果;使用比较运算符根据每个表共有的列的值匹配两个表中的行

为了方便查看;这里用table1和table2表示原始数据

table1

table2
SQL:sql连接那些事儿

自然连接

自然连接是一种特殊的等值连接;他要求两个关系表中进行连接的必须是 相同的属性列;名字相同;;无须添加连接条件;并且在结果中消除重复的属性列。

 Select * from table1 natural join table2

返回结果如下
SQL:sql连接那些事儿

相等连接

相等连接;相比较自然连接的不同之处在于;不同之处在于自然连接的是同名属性列的连接;而内连接则不要求两属性列同名;可以用using或on来指定某两列字段相同的连接条件;且不会消除同名属性列。

代码如下;

 Select * from table1 inner join table2 on table1.A=table2.E

最终返回结果如下
SQL:sql连接那些事儿
但是内连接时;某些属性值不同的元组会被抛弃;要解决这样的问题;则需要引入外连接

2.外连接

内连接是要显示两张表的内存;而外连接不要求如此;外连接可以依据连接表保留左表;右表或全部表的行为而分为左外连接右外连接和全连接。

LEFT JOIN;LEFT OUTER JOIN;

左外连接是在两表进行自然连接;只把左表要舍弃的保留在结果集中;右表对应的列上填null。

SQL:sql连接那些事儿

RIGHT JOIN ;RIGHT OUTER JOIN;

右外连接是在两表进行自然连接;只把右表要舍弃的保留在结果集中;左表对应的列上填null。

 Select * from table1 right outer join table2 on table1.C=table2.C

SQL:sql连接那些事儿

FULL JOIN;FULL OUTER JOIN;

全连接在mysql中并不直接支持;可以通过union的方式让左连接和右连接合并起来最终得到全连接

 Select * from table1 left outer join table2 on table1.C=table2.C
 UNION 
 Select * from table1 right outer join table2 on table1.C=table2.C

最终结果
SQL:sql连接那些事儿

关于Join和WHERE的区别

on条件是在生成临时表时使用的条件;它不管on中的条件是否为真;都会返回左边表中的记录。where条件是在临时表生成好后;再对临时表进行过滤的条件。这时已经没有left join的含义;必须返回左边表的记录;了;条件不为真的就全部过滤掉。

简单来说就是on不管条件是不是真的都会进行返回;但是where的话只会返回条件为真的结果

这里拿别人的相关例子简单进行举例记录

SELECT * FROM tbl_emp  a INNER JOIN tbl_dept b ON a.deptId = b.id; 

返回结果
SQL:sql连接那些事儿

SELECT * FROM tbl_emp  a LEFT JOIN tbl_dept b ON a.deptId = b.id WHERE b.id IS NULL; 

SQL:sql连接那些事儿

动手实践及参考博客

一文让你彻底理解SQL中的join

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。