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两侧表中所有满足检索条件的行

posted @ 2021-05-13 15:44  乘风破浪的阿泽  阅读(699)  评论(0)    收藏  举报