mysql 集合减法_SQL的集合运算概念

表的加减法

1.什么是集合运算: 集合在数学领域表示“(各种各样的)事物的总和”,在数据库领域表示记录的集合。具体来说,表、视图和查询的执行结果都是记录的集合。

2.表的加法——UNION(并集):集合运算符会除去重复的记录。

3.集合运算的注意事项:作为运算对象的记录的列数必须相同;

作为运算对象的记录中列的类型必须一致;

可以使用任何SELECT语句,但ORDER BY子句只能在最后使用一次。

4.包含重复行的集合运算——ALL选项:

5.选取表中公共部分——INTERSECT:用法同UNION,但MySQL不适用。

6.记录的减法——EXCEPT:用法同UNION,但MySQL不适用。

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

1.什么是联结:简单来说,就是将其他表中的列添加过来,进行“添加列”的运算。

2.内联结——INNER JOIN:在 ON 之后指定两张表联结所使用的列(联结键)

3.进行内联结时必须使用ON子句,并且要书写在FROM和WHERE之间。

4.使用联结时SELECT子句中独有的列可以省略表名,但最好按照“.”的格式进行书写,避免混乱。

5.内联结和WHERE子句结合使用:

6.这张“表”只在 SELECT 语句执行期间存在, SELECT 语句执行之后就会消失。如果希望继续使用这张“表”,还是将它创建成视图吧。

7.外联结——OUTER JOIN:

8.与内联结的结果相比,不同点显而易见,那就是结果的行数不一样,外联结选取出单张表中全部的信息。

9.外联结还有一点非常重要,那就是要把哪张表作为主表。最终的结果中会包含主表内所有的数据。指定主表的关键字是 LEFT 和 RIGHT。顾名思义, 使用 LEFT 时 FROM 子句中写在左侧的表是主表,使用 RIGHT时右侧的表是主表。

10.外联结中使用LEFT、 RIGHT来指定主表。使用二者所得到的结果完全相同。

11.3张以上的表的联结:

12.交叉联结——CROSS JOIN:

13.进行交叉联结时无法使用内联结和外联结中所使用的 ON 子句,这是因为交叉联结是对两张表中的全部记录进行交叉组合,因此结果中的记录数通常是两张表中行数的乘积。本例中,因为 ShopProduct表存在 13 条记录, Product 表存在 8 条记录,所以结果中就包含了13 × 8 = 104 条记录。

14.交叉联结没有应用到实际业务之中的原因有两个:一是其结果没有实用价值,二是由于其结果行数太多,需要花费大量的运算时间和高性能设备的支持。

以上,表的集合可以用数学上的文氏图进行理解,联结的三个定义:内联结、外联结和交叉联结搞明白含义就OK。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值