数据库4:集合运算-表的加减法和join-天池龙珠计划SQL训练营

本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql

一、表的加减法

表的加法——UNION

用法:SELECT product_id, product_name

FROM product

UNIO

集合运算——UNION ALL

用法:SELECT product_id, product_name

FROM product2:

隐式转换

字符串型:SELECT product_id, product_name, '1'

FROM product

UNION

数值类型:SELECT product_id, product_name,sale_price

FROM product2:

bag的交运算

对于两个 bag, 他们的交运算会按照:(1)该元素是否同时属于两个bag;(2)该元素在两个bag中最小出现次:数这两个方面来进行计算. 因此对于 A = {1,1,1,2,3,5,7}, B = {1,1,2,2,4,6,8} 两个 bag, 它们的交运算结果就等于 {1,1,2}

二、连结(JOIN)

内连结(INNER JOIN)

内连结的语法:FROM <tb_1> INNER JOIN <tb_2> ON <condition(s)>

注意:其中 INNER 关键词表示使用了内连结

关于内连结,需要注意以下三点:

要点一:进行连接时需要在FROM子句中使用多张表

要点二:必须使用ON句子来指定连结条件

要点三:SELECT句子中的列最好按照表名.列名的格式来使用

注意:查询的执行顺序按照,FROM 子句->WHERE 子句->SELECT 子句

三、自连结(SELF JOIN)

内连结, 连结的都是不一样的两个表. 但实际上一张表也可以与自身作连结, 这种连接称之为自连结.

注意: 自连结并不是区分于内连结和外连结的第三种连结, 自连结可以是外连结也可以是内连结, 它是不同于内连结外连结的另一个连结的分类方法.

四、自然连结(NATURAL JOIN)

自然连结并不是区别于内连结和外连结的第三种连结, 它其实是内连结的一种特例–当两个表进行自然连结时, 会按照两个表中都包含的列名来进行等值内连结

五、外连结(OUTER JOIN)

内连结会丢弃两张表中不满足 ON 条件的行,和内连结相对的就是外连结.

外连结分为:

左连结语法:FROM <tb_1> LEFT OUTER JOIN <tb_2> ON <condition(s)>

右连结语法:FROM <tb_1> RIGHT OUTER JOIN <tb_2> ON <condition(s)>

全外连结语法: FROM <tb_1> FULL OUTER JOIN <tb_2> ON <condition(s)>

六、多表连结

通常连结只涉及 2 张表,但有时也会出现必须同时连结 3 张以上的表的情况, 原则上连结表的数量并没有限制。

七、交叉连结——CROSS JOIN(笛卡尔积)

无论是外连结内连结, 一个共同的必备条件就是连结条件–ON 子句, 用来指定连结的条件. 如果你试过不使用这个连结条件的连结查询, 你可能已经发现, 结果会有很多行. 在连结去掉 ON 子句, 就是所谓的交叉连结(CROSS JOIN)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值