• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2019-10-25 02:33 Aet 隐藏边栏 |   抢沙发  10 
文章评分 3 次,平均分 5.0

笛卡儿积

  1. 如果两张表进行连接查询的时候没有任何条件限制,最终的查询结果总数是两张表记录的成绩,这个就是笛卡尔积现象

年代分类

sql92

sql99

连接方式

概述

  1. MySQL中,表的连接方式主要有内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN
  2. 此外,还有一些特殊类型的连接,如交叉连接(CROSS JOIN)和自连接(SELF JOIN
  3. 这些连接方式用于从两个或多个表中提取相关数据

内连接

  1. 内连接返回两个表中满足连接条件的所有行
  2. 如果行在任何一个表中没有匹配的,则不会出现在结果集中

等值连接

非等值连接

外连接

左连接

  1. 左连接返回左表中的所有行以及右表中满足连接条件的行
  2. 如果右表中没有匹配的,则结果集中包含左表的行,右表的列为 NULL

右连接

  1. 右连接返回右表中的所有行以及左表中满足连接条件的行
  2. 如果左表中没有匹配的,则结果集中包含右表的行,左表的列为 NULL

全连接

  1. MySQL不直接支持FULL JOIN,但可以通过联合(UNION)左连接和右连接来实现全连接
  2. 全连接返回两个表中所有行,如果行在任何一个表中没有匹配的,则结果集中相应的列为 NULL

自连接

  1. 自连接是表与自身的连接,通常用于比较表中的行或处理层次结构数据
    1. 它可以是内连接(INNER JOIN)、外连接(LEFT JOINRIGHT JOIN)、交叉连接(CROSS JOIN)的一种

交叉连接

  1. 交叉连接返回两个表的笛卡尔积,即每个表中的每一行与另一个表中的每一行组合

比较

  1. 内连接(INNER JOIN):返回两个表中满足连接条件的所有行
    1. 表1
  2. 左连接(LEFT JOIN):返回左表中的所有行,以及右表中满足连接条件的行
  3. 右连接(RIGHT JOIN):返回右表中的所有行,以及左表中满足连接条件的行
  4. 全连接(FULL JOIN):通过联合左连接和右连接来实现,返回两个表中所有行
  5. 交叉连接(CROSS JOIN):返回两个表的笛卡尔积
  6. 自连接(SELF JOIN):表与自身的连接,用于比较表中的行或处理层次结构数据

理解

  1. 内连接返回成功匹配行的集合
  2. 外连接会返回所有行的集合,然后根据返回是哪个表是所有行,可以再分成左连接或右连接
    1. 如果两个表的所有行都返回了,那就是全连接
  3. 自连接由于是和自己去连,所以它可以按照需求去选择返回匹配行或所有行
    1. 所以它可能是内连接,也可能是外连接,也可能是交叉连接
  4. 交叉连接就是返回笛卡尔积,它都不需要连接条件

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2024-06-26
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享