本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql
一、表的加法
1.UNION(求并集):UNION等集合运算符会除去重复的记录。
2.UNION于OR谓词:将两个不同表中的结果合并,就使用UNION,否则UNION和OR都可。
3.包含重复行运算UNION ALL:保留UNION中重复行。
4.隐式类型转换:将数据类型不同的列通过隐式转换放在一列里显示。
二、差集、补集与表的减法
1.EXCEPT与NOT谓词:当使用一个集合A减去另一个集合B的时候,对于只存在于集合B而不存在于集合A的元素, 采取直接忽略的策略,因此集合A和B做减法只是将集合A中也同时属于集合B的元素减掉。
2.EXCEPT ALL与bag的差:
对于两个 bag, 他们的差运算会按照:
1.该元素是否属于作为被减数的 bag,
2.该元素在两个 bag 中的出现次数
这两个方面来进行计算. 只有属于被减数的bag的元素才参与EXCEP ALL运算, 并且差bag中的次数,等于该元素在两个bag的出现次数之差(差为零或负数则不出现). 因此对于 A = {1,1,1,2,3,5,7}, B = {1,1,2,2,4,6,8} 两个 bag, 它们的差就等于 {1,3,5,7}.
3.INTERECT与AND谓词:对于同一个表的两个查询结果而言, 他们的交INTERSECT实际上可以等价地将两个查询的检索条件用AND谓词连接来实现.
三、连结(JOIN)
连结(JOIN)就是使用某种关联条件(一般是使用相等判断谓词"="), 将其他表中的列添加过来, 进行“添加列”的集合运算。
1.内连结(INNER JOIN):从两个不一样表获取信息并用公共列连结起来。
2.自连结(SELF JOIN):一张表与自身连结。
3.外连结(OUT JOIN):根据外连结的种类有选择地保留无法匹配到的行.按照保留的行位于哪张表,外连结有三种形式: 左连结, 右连结和全外连结.左连结会保存左表中无法按照 ON 子句匹配到的行, 此时对应右表的行均为缺失值; 右连结则会保存右表中无法按照 ON 子句匹配到的行, 此时对应左表的行均为缺失值; 而全外连结则会同时保存两个表中无法按照 ON子句匹配到的行, 相应的另一张表中的行用缺失值填充.