🎈写在前文
🙋♂️ 小伙伴们如果在学习过程中有不明白的地方,欢迎评论区留言提问!希望能和大家一起进步,共同成长!
目录
表的加减法
-
什么是集合运算
- 集合在数学领域表示“(各种各样的)事物的总和”,在数据库领域表示记录的集合。
-
表的加法—— UNION
- 表1
-
表2
-
可以看到表1的004、5、7、8在表2中是不存在的,同时在表2中的9、10在表1中也是不存在的
SELECT product_id, product_name FROM Product UNION SELECT product_id, product_name FROM Product2;
可以看到union是求出了并集,并且自动去重了,集合运算符会除去重复的记录。
如果我们想要保留重复行只需要在集合运算符后加上ALL即可
可以看到此时重复行都已经保存下来了
-
集合运算的注意事项
- 作为运算对象的记录的列数必须相同
- 作为运算对象的记录中列的类型必须一致
- 可以使用任何 SELECT 语句,但 ORDER BY 子句只能在最后使用一次
-
选取表中公共部分—— INTERSECT
- 选取两个记录集合中公共部分的 INTERSECT (交集)
-
SELECT product_id, product_name FROM Product INTERSECT SELECT product_id, product_name FROM Product2 ORDER BY product_id;
可以看到INSTERSECT是求两个记录的交集(PS:MYSQL中无法使用INSTERSECT)
记录的减法—— EXCEPT
- 减法运算的 EXCEPT (差集)(PS:只有Oracle不使用 EXCEPT ,而
是使用其特有的 MINUS 运算符。使用Oracle的用户,请用 MINUS
代替 EXCEPT 。此外,MySQL还不支持 EXCEPT ,因此也无法使用。)SELECT product_id, product_name FROM Product EXCEPT SELECT product_id, product_name FROM Product2 ORDER BY product_id;
![]()