演示示例

阐明:以下示例中,表a是员工表,有a,b,c,d四个员工,性别都是男性m。表b是工资表,有a,b,d四个员工,工资对应的是1000,2000,4000。而后别离演示带(+)符号的和不带(+)符号的,后果如下。

SQL> select * from a;NAME                 SEX-------------------- -----a                    mb                    mc                    md                    mSQL> select * from b;NAME                      MONEY-------------------- ----------a                          1000b                          2000d                          4000SQL> select a.name,b.money from a,b where a.name=b.name(+);NAME                      MONEY-------------------- ----------a                          1000b                          2000d                          4000cSQL> select a.name,b.money from a,b where a.name=b.name;NAME                      MONEY-------------------- ----------a                          1000b                          2000d                          4000

可见,带(+)号时,a表中的所有人都在,即便工资为空。不带(+)时,a表中的没有呈现工资为空的员工c。

<!--more-->

对(+)号的解释

(+) 示意外连贯。条件关联时,个别只列出表中满足连贯条件的数据。如果条件的一边呈现(+),则另一边的表就是主表,主表中的所有记录都会呈现,即便附表中有的记录为空

(+)的扩大:SQL表连贯

SQL表连贯分类

内连贯,外连贯,穿插连贯,其中外连贯包含左连贯和右连贯。

SQL表连贯示例

内连贯

SQL> select a.name,b.money from a,b where a.name=b.name;SQL> select a.name,b.money from a inner join b on a.name=b.name;

左连贯

SQL> select a.name,b.money from a,b where a.name=b.name(+);SQL> select a.name,b.money from a left join b on a.name=b.name;

右连贯

SQL> select a.name,b.money from a right join b on a.name=b.name;SQL> select a.name,b.money from a,b where a.name(+)=b.name;

穿插连贯

SQL> select a.name,b.money from a full join b on a.name=b.name;NAME                      MONEY-------------------- ----------a                          1000b                          2000cd                          4000SQL> select a.name,b.money from a,b where a.name(+)=b.name(+);select a.name,b.money from a,b where a.name(+)=b.name(+)                                              *第 1 行呈现谬误:ORA-01468: 一个谓词只能援用一个内部联接的表

所以(+)只是示意外连贯,并不示意穿插连贯。

参考:

SQL Server 数据库 (+) 这个是什么意思

SQL表连贯查问(inner join、full join、left join、right join)


记得帮我点赞哦!

精心整顿了计算机各个方向的从入门、进阶、实战的视频课程和电子书,依照目录正当分类,总能找到你须要的学习材料,还在等什么?快去关注下载吧!!!

朝思暮想,必有回响,小伙伴们帮我点个赞吧,非常感谢。

我是职场亮哥,YY高级软件工程师、四年工作教训,回绝咸鱼争当龙头的斜杠程序员。

听我说,提高多,程序人生一把梭

如果有幸能帮到你,请帮我点个【赞】,给个关注,如果能顺带评论给个激励,将不胜感激。

职场亮哥文章列表:更多文章

自己所有文章、答复都与版权保护平台有单干,著作权归职场亮哥所有,未经受权,转载必究!