7.SQL基础教程(七)-集合运算

一、集合运算

集合运算的注意事项:

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

1 表的加法:UNION

SELECT <列名1> <列名2>
FROM <表名1>
UNION
SELECT <列名1> <列名2>
FROM <表名2>
  • 集合运算符会除去重复的记录。
  • ALL选项:在 UNION 的结果中保留重复行,只需要在 UNION 后面添加 ALL 关键字。
SELECT <列名1> <列名2>
FROM <表名1>
UNION ALL
SELECT <列名1> <列名2>
FROM <表名2>

2 选取表中公共部分(并集):INTERSECT

SELECT <列名1> <列名2>
FROM <表名1>
INTERSECT
SELECT <列名1> <列名2>
FROM <表名2>

 3 记录的减法:EXCEPT

SELECT <列名1> <列名2>
FROM <表名1>
EXCEPT
SELECT <列名1> <列名2>
FROM <表名2>

二、联结(以列为单位对表进行联结)

1 内联结:INNER JOIN

SELECT <表名1>.<列名11>, <表名1>.<列名12>, <表名1>.<列名(共)>, <表名2>.<列名21>, <表名2>.<列名22>, <表名2>.<列名(共)>
FROM <表名1> INNER JOIN <表名2>
ON <表名1>.<列名(共)> =  <表名2>.<列名(共)>

【示例】

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;

要点:

  • 进行联结时需要在FROM子句中使用多张表。
  • 进行内联结时必须使用ON子句,并且要书写在FROM和WHERE之间。
  • 使用联结时SELECT子句中的列需要按照“.”的格式进行书写。

2 外联结:OUTER JOIN

SELECT <表名1>.<列名11>, <表名1>.<列名12>, <表名1>.<列名(共)>, <表名2>.<列名21>, <表名2>.<列名22>, <表名2>.<列名(共)>
FROM <表名1> RIGHT OUTER JOIN <表名2>
ON <表名1>.<列名(共)> =  <表名2>.<列名(共)>

3 交叉联结:CROSS JOIN

笛卡尔积,很少使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值