集合运算

7-1 表的加减法

Ⅰ 表的加法–UNION(并集)

SELECT product_id, product_name
  FROM Product
UNION
SELECT product_id, product_name
  FROM Product2;

集合运算符除去重复的记录

注意事项:

  1. 作为运算对象的记录的列数必须相同
  2. 作为运算对象的记录中列的类型必须一致
  3. 可以使用任何SELECT语句,但是ORDER BY子句只能在最后使用一次

举例:

SELECT product_id, product_name
  FROM Product
 WHERE product_type = '厨房用具'
UNION
SELECT product_id, product_name
  FROM Product2
 WHERE product_type = '厨房用具'
ORDER BY product_id;

Ⅱ 包含重复行的集合运算–ALL选项

保留重复行的语法,就是在UNION后面添加ALL关键字即可

Ⅲ 选取公共部分–INTERSECT

SELECT product_id, product_name
  FROM Product
INTERSECT
SELECT product_id, product_name
  FROM Product2
ORDER BY product_id;

Ⅳ 记录的减法–EXCEPT(差集)

SELECT product_id, product_name
  FROM Product
EXCEPT
SELECT product_id, product_name
  FROM Product2
ORDER BY product_id;

7-2 联结(以列为单位对表进行联结)

学习重点:

  1. 联结(JOIN)就是将其他表中的列添加进来;
  2. 联结大体分为内联结和外联结两种

Ⅰ 内联结(INNER JOIN)

SELECT SP.shop_id, SP.shop_name, SP.product_id, P.product_name, P.sale_price
  FROM ShopProduct AS SP INNER JOIN Product AS P
    ON SP.product_id = P.product_id;

Ⅱ 外联结(OUTER JOIN)

SELECT SP.shop_id, SP.shop_name, SP.product_id, P.product_name, P.sale_price
  FROM ShopProduct AS SP RIGHT OUTER JOIN Product AS P
    ON SP.product_id = P.product_id;

Ⅲ 三张以上的表的联结

SELECT SP.shop_id, SP.shop_name, SP.product_id, P.product_name, P.sale_price, IP.inventory_quantity
  FROM ShopProduct AS SP INNER JOIN Product AS P
    ON SP.product_id = P.product_id
               INNER JOIN InventoryProduct AS IP
                   ON SP.product_id = IP.product_id
WHERE IP.inventory_id = 'S001';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值