SQL中外连接与内连接之间的区别

Posted 三年砥砺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中外连接与内连接之间的区别相关的知识,希望对你有一定的参考价值。

外连接

外连接分为外左连接(left outer join)和外右连接(right outer join)
left outer join 与 left join 等价,一般写成left join,左连接,取左边的表的全部,右边的表按条件,符合的显示,不符合则显示null
right outer join 与 right join等价,一般写成right join,右连接:取右边的表的全部,左边的表按条件,符合的显示,不符合则显示null

内连接

内连接(inner join):也称为等值连接,返回两张表都满足条件的部分
注释:inner join 就等于 join

内连接和where的区别

数据库表连接数据行匹配时所遵循的算法就是笛卡尔积,表与表之间的连接可以看成是在做乘法运算。
sql中主要关键字的执行顺序:
from
on
join
where
group by
having
select
distinct
union
order by
on是在join和where前面的
    如果两张表的数据量都比较大的话,那样就会占用很大的内存空间这显然是不合理的。所以,我们在进行表连接查询的时候一般都会使用JOIN xxx ON xxx的语法,ON语句的执行是在JOIN语句之前的,也就是说两张表数据行之间进行匹配的时候,会先判断数据行是否符合ON语句后面的条件,再决定是否JOIN。

  因此,有一个显而易见的SQL优化的方案是,当两张表的数据量比较大,又需要连接查询时,应该使用 FROM table1 JOIN table2 ON xxx的语法,避免使用 FROM table1,table2 WHERE xxx 的语法,因为后者会在内存中先生成一张数据量比较大的笛卡尔积表,增加了内存的开销。

全连接(Full join)

全外连接是在结果中除了显示满足连接的条件的行外,还显示了join两侧表中所有满足检索条件的行

以上是关于SQL中外连接与内连接之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

SQL内连接与外连接用法与区别

SQL中内连接和外连接的区别

SQL内连接与外连接的区别

SQL 中 3 个条件的联合与内连接

sql 内连接和外连接的是啥意思?

外连接(left join、full join、right join)与内连接(inner join)的区别