【SQL】自然连接、内连接、左连接、右连接

天生的联系……说实话,这件事挺简单的。
即两个时钟是直接耦合的,无论它们之间的关系如何,都是直接匹配的。
例如,如果表A有1 00个条目,表B有2 00个条目,那么自然连接将直接给你4 ,000个条目(1 00,2 00),其中许多可能是无用的。
使用时要小心,以免内存枯竭。

内部链接,这个常用。
必须有条件。
ON后面应该写什么条件?只有符合条件的人才会加入。
它非常有效并且被广泛使用。
如果不输入任何条件,内部链接将成为自然链接。
请注意这一点。

左连接...记住这一点,在左边的表(例如表A)到右边的表(表B)中查找每个条目。
如果你能找到它,就把它放在一起。
如果没有找到,则将B表的部分内容留空,填入NULL。
例如,如果表 A 有 1 00 个条目,表 B 有 5 0 个条目,则结果将至少为 1 00 个条目。
如果B表不匹配,则为NULL。

右连接与左连接相反。
在左侧(表A)中一项一项地搜索右侧(表B)的项目。
如果你能找到它,请写下来。
如果没有找到,则将A表的部分内容留空,填入NULL。
表 B 有 2 00 个条目,表 A 有 1 00 个条目,结果至少有 2 00 个条目。
如果没有匹配,表 A 为 NULL。

总结一下...自然链接是随机拼写,内部链接是有条件拼写,左链接保留左侧,右链接保留右侧。
使用哪一种要根据情况而定,不要盲目使用。

数据库中自然连接与内连接的区别

自然连接是内连接的一种特殊情况,仅连接具有共同特征的连接。
结果消除重复,条件严格。
内连接更加灵活,可以基于任何属性并排除重复。
您选择哪一种取决于您的需求。

关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别

我记得上次帮朋友搬家时,箱子一个个叠在一起,没有编号的箱子朝随机方向堆放,这让找东西感觉就像寻宝一样。
数据库中也是同样的情况。
R 和 S 的关系只是笛卡尔积。
所有组均已列出。
3 名学生被分配到2 门课程,并且包括所有9 个小组。
有的组合根本没有结果,乱七八糟。
比如5 月1 0日,我在图书馆整理了两份清单,一份是学生的,一份是课程的,直接进行匹配。
结果一半都错了,没来上课的学生都被拖走了。
这需要等效连接。
例如,使用 Student Number Sno 仅选择整数。
这就是 SQL 中 INNER JOIN 的作用。
从 Student.Sno = Score.Sno 上的学生内连接分数中选择。
打字后发现只有7 条。
结果只有7 名学生提交了成绩。
自然连接更加积极,并且会自动删除重复的列。
例如,如果两个表中都出现了学号Sno,那么就只剩下一张了,就像移动时合并同名的图块一样。
Inner join 和它类似,但是条件一定要写清楚,INNER JOIN...ON...,写完后结果是一样的,突然我想,为什么inner join 不能像自然 join 一样智能的自动去重呢?算了,设计者大概觉得写清楚就稳妥了。
总之,如果这些通讯方式运用得好,找东西就不会像在垃圾堆里挖一样。