第七章 集合运算 7-2 联结(以列为单位对表进行联结)

一、什么是联结
联结(JOIN)就是将其他表中的列添加过来,进行“添加列”的集合。
 
二、内联结——INNER JOIN
1、内联结要点1️⃣FROM子句
进行联结时需要在FROM子句中使用多张表。为了提高SQL的可读性,一般表名需要使用别名。
 
2、内联结要点2️⃣ON子句
ON之后指定两张表联结所使用的列(联结键)。需要指定多个键时,同样可以使用AND和OR。
进行内联结时,ON子句是必不可少的,并且必须写在FROM和WHERE之间。
 
3、内联结要点3️⃣SELECT子句
为了避免混乱, 还是希望大家能够在使用联结时按照“< 表的别名 >.< 列名 >”的格式来书写 SELECT 子句中全部的列。
 
4、内联结和WHERE子句结合使用
使用联结运算将满足相同规则的表联结起来时,WHERE、 GROUP BY、HAVING、ORDER BY等工具都可以正常使用。我们可以将联结之后的结果想象为新创建出来的一张表,对这张表使用 WHERE 子句等工具。
这张“表”只在SELECT语句执行期间存在。SELECT语句执行之后就会消失。
 
三、外联结——OUTER JOIN
左外联结:LEFT OUTER JOIN
右外联结:RIGHT OUTER JOIN
1、外联结要点1️⃣选取出单张表中全部的信息
在实际业务中,如果想要生成固定行数的单据,就需要使用外联结。
外联结名称的由来也跟NULL有关,即“结果中包含原表中不存在(在原表之外)的信息”。
 
2、外联结要点2️⃣每张表都是主表吗?
外联结把哪张表作为主表,最终结果就会包含主表内所有的数据。
指定主表的关键词是LEFT和RIGHT。
LEFT左侧的是主表,RIGHT右侧的是主表。
 
四、3张表以上的联结
通常联结只涉及2张表,但有时也会出现必须同时联结3张以上表的情况。
原则上联结表的数量没有限制。
 
五、交叉联结——CROSS JOIN
交叉联结是所有联结的运算基础。但在实际的业务中并不会使用。
对满足相同规则的表进行交叉联结的集合运算符是CROSS JOIN(笛卡尔积)。结果中的记录时两张表中行数的乘积。
注:内联结是交叉联结的一部分,“内”也可以理解为“包含在交叉联结结果中的部分”。相反,外联结的“外”可以理解为“交叉联结结果之外的部分”。【不理解】
 
六、联结的特定语法和过时语法
不推荐使用,了解即可。
 
七、关系除法???
集合运算中的除法通常称为关系除法。DIVIDE除
注:除法运算是集合运算中最复杂的运算,但是其在实际业务中的应用十分广泛,希望达到中级以上水平掌握其使用方法。
 
 

猜你喜欢

转载自www.cnblogs.com/mumulin99/p/9837282.html