深入理解SQL表连接(join)

 

关系数据库中最重要的两个概念,当属表连接和聚合。表连接将一条数据分开成多条,表聚合将多条合成一条。这一分一合,形成了关系数据库强大的逻辑表达能力,这篇文章讲表连接,关于聚合请移步:深入理解SQL分组聚合

 

1、理解各种表连接的思维捷径

“内连接、外连接、左外连接、右外连接、全连接、交叉连接、自然连接”,这么多种连接方式,你是不是已经晕了?一般的教科书都是从集合论及关系代数入手,搬出一大堆晦涩难懂的名词,读时好像懂了,但是过一段时间还是分不清楚。

其实要理解这些连接方式,你只需要记住一种连接“笛卡尔积”就可以了。也就是说,所有的其它连接方式,无非是在笛卡尔积的基础上,要么筛选掉一些记录、要么增加一些记录。

笛卡尔积是什么?想必大家都知道,它往往以负面形象出现,因为大家无时无刻被告知,在操作数据库时要避开它。虽然熟视无睹,但还是解释一下:它是指两个表连接时,左表的每行记录与右表的每行记录均连接,那么返回的记录数是两表记录数的乘积。

其实笛卡尔积又称交叉连接、直积,一般叫它笛卡尔积呢,为什么呢?因为这样叫显得更高大上嘛!

 

言归正传,下面我们用笛卡尔积,稍做“加减法”,得出其它连接方式:


【笛卡尔积】

SELECT * FROM a, b

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值