Task04:集合运算-表的加减法和join等-天池龙珠计划SQL训练营

本文深入探讨了SQL中的集合运算,包括UNION、UNION ALL、INTERSECT(通过AND实现)和EXCEPT(通过NOT实现)。介绍了如何使用这些运算符处理表的加减法,以及在MySQL8.0中的适用情况。此外,详细阐述了各种类型的JOIN操作,如INNER JOIN、LEFT JOIN、RIGHT JOIN、SELF JOIN和NATURAL JOIN,并提供了实现全外连结的方法。还讨论了非等值连结和CROSS JOIN的概念。最后,提到了连结的特定语法和过时语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.1表的加减法
4.1.1 什么是集合运算
4.1.2 表的加法–UNION
4.1.2.1 UNION
4.1.2.2UNION 与 OR 谓词
4.1.2.3 包含重复行的集合运算 UNION ALL
4.1.2.4[扩展阅读]bag 模型与 set 模型
4.1.2.5隐式类型转换
4.1.3 MySQL 8.0 不支持交运算INTERSECT
4.1.3.1[扩展阅读]bag 的交运算
4.1.4 差集,补集与表的减法
4.1.4.1 MySQL 8.0 还不支持 EXCEPT 运算
4.1.4.2 EXCEPT 与 NOT 谓词
4.1.4.3EXCEPT ALL 与bag 的差
4.1.4.4INTERSECT 与 AND 谓词
4.1.5对称差
4.1.5.1借助并集和差集迂回实现交集运算 INTERSECT
4.2连结(JOIN)
4.2.1 内连结(INNER JOIN)
4.2.1.1 使用内连结从两个表获取信息
4.2.1.2 结合 WHERE 子句使用内连结
4.2.1.3结合 GROUP BY 子句使用内连结
4.2.1.4自连结(SELF JOIN)
4.2.1.5内连结与关联子查询
4.2.1.6自然连结(NATURAL JOIN)
4.2.1.7使用连结求交集
4.2.2 外连结(OUTER JOIN)
4.2.2.1 左连结与右连接
4.2.2.2 使用左连结从两个表获取信息
4.2.2.3结合 WHERE 子句使用左连结
4.2.2.4在 MySQL 中实现全外连结
4.2.3多表连结
4.2.3.1 多表进行内连结
4.2.3.2多表进行外连结
4.2.4ON 子句进阶–非等值连结
4.2.4.1非等值自左连结(SELF JOIN)
4.2.5 交叉连结—— CROSS JOIN(笛卡尔积)
4.2.5.1[扩展阅读]连结与笛卡儿积的关系
4.2.6 连结的特定语法和过时语法
练习题
4.1
4.2
4.3
4.4
4.5

SQL训练营页面地址:https://tianchi.aliyun.com/specials/promotion/aicampsql
天池龙珠计划训练营地址:https://tianchi.aliyun.com/specials/promotion/aicamps

union取并集:

SELECT product_id, product_name
  FROM product
 UNION
SELECT product_id, product_name
  FROM product2;

union和or得到相同的结果
包含重复行的集合运算 UNION ALL

隐式类型转换
MySQL 8.0 不支持交运算INTERSECT
但是可以用and实现
MySQL 8.0 还不支持 EXCEPT 运算
可以用not实现

4.2连结(JOIN)
inner join
自连结(SELF JOIN)
自然连结(NATURAL JOIN)

MySQL8.0 目前还不支持全外连结, 不过我们可以对左连结和右连结的结果进行 UNION 来实现全外连结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值