学习笔记与练习 | SQL入门(四)| 集合运算

本文介绍了SQL中的集合运算,包括UNION、差集和补集的使用,详细讲解了不同类型的JOIN操作,如INNER JOIN、OUTER JOIN、CROSS JOIN,并给出了相关练习题和实例解析,帮助初学者掌握SQL中表的加减法和连接查询。
摘要由CSDN通过智能技术生成


表的加减法

表的加法UNION

并集运算,会除去重复项
单表加法可用OR替代:

SELECT * 
  FROM product 
 WHERE sale_price / purchase_price < 1.3
 
 UNION
SELECT * 
  FROM product 
 WHERE sale_price / purchase_price IS NULL;

保留重复行:

SELECT product_id, product_name
  FROM product
 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;

则缺少sale_price的将由1补齐,列名为1

SYSDATE()函数可以返回当前日期时间, 是一个日期时间类型的数据, 该数据类型和数值,字符串等类型具有兼容性.

不支持交运算

差集,补集与表的减法

可以使用NOT IN
例子:找出只存在于product表但不存在于product2表的商品.

SELECT * 
  FROM product
 WHERE product_id NOT IN (SELECT product_id 
                            FROM product2)

对称差

SELECT * 
  FROM product
 WHERE product_id NOT IN (SELECT product_id FROM product2)
UNION
SELECT * 
  FROM product2
 WHERE product_id NOT IN (SELECT product_id FROM product)

连结 (JOIN)

期望得到的数据往往会分散在不同的表之中, 这时候就需要使用连结了.

内连结(INNER JOIN)

-- 内连结
FROM <tb_1> INNER JOIN <tb_2> ON <condition(s)>

例子:

SELECT SP.shop_id
       ,SP.shop_name
       ,SP.product_id
       ,P.product_name
       ,P.product_type
       ,P.sale_price
       ,SP
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值