task 4:集合运算

本文详细介绍了SQL中的集合运算,包括UNION、UNION ALL、INTERSECT、EXCEPT等,并探讨了它们与OR、NOT谓词的关系。此外,还讲解了各种类型的连结操作,如INNER JOIN、LEFT JOIN、RIGHT JOIN、CROSS JOIN,以及如何实现全外连结。内容涵盖表的加减法、交集、差集、补集,以及如何在实际问题中应用这些概念。
摘要由CSDN通过智能技术生成

4.1 表的加减法

4.1.1 什么是集合运算

在这里插入图片描述

4.1.2 表的加法—UNION

4.1.2.1 UNION

UNION相当于是求并集的运算,可以对两张表,也可以对同一张表~~
UNION会除去重复的记录!!!

#两张表
SELECT product_id, product_name
  FROM product
 UNION
SELECT product_id, product_name
  FROM product2;

在这里插入图片描述
同一张表~~
练习题:假设连锁店想要增加毛利率超过 50%或者售价低于 800 的货物的存货量, 请使用 UNION 对分别满足上述两个条件的商品的查询结果求并集.

SELECT  product_id,product_name,product_type
       ,sale_price,purchase_price
  FROM product 
 WHERE sale_price<800
  
 UNION
 
SELECT  product_id,product_name,product_type
       ,sale_price,purchase_price
  FROM product 
 WHERE sale_price>1.5*purchase_price;

不使用UNION

SELECT  product_id,product_name,product_type
       ,sale_price,purchase_price
  FROM product 
 WHERE sale_price < 800 
    OR sale_price > 1.5 * purchase_price;

4.1.2.2 UNION 与 OR 谓词

确实, 对于同一个表的两个不同的筛选结果集, 使用 UNION 对两个结果集取并集, 和把两个子查询的筛选条件用 OR 谓词连接, 会得到相同的结果, 但倘若要将两个不同的表中的结果合并在一起, 就不得不使用 UNION 了,而且, 即便是对于同一张表, 有时也会出于查询效率方面的因素来使用 UNION。

练习题:分别使用 UNION 或者 OR 谓词,找出毛利率不足 30%或毛利率未知的商品.

-- 使用 OR 谓词
SELECT * 
  FROM product 
 WHERE sale_price / purchase_price < 1.3 
    OR sale_price / purchase_price IS NULL;
-- 使用 UNION
SELECT * 
  FROM product 
 WHERE sale_price / purchase_price < 1.3
 
 UNION
SELECT * 
  FROM product 
 WHERE<
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值