!! 多表连接函数单讲

多表连接函数

分类:等值连接 左外连接 右外链接 全连接 笛卡尔积


前提条件,创建两张表,stu和address 展示如下:
SNO SNAME        SNO ZZ
……………..       …………………..
1     A                     1       a
2      B                     2      b
4     D                     3      c
[ stu ]                      [ address ]

(1)等值连接 按照给定条件找出相等的行并进行连接

select …… from 表A 别名 , 表B 别名 where……
select s.sno ,s.sname,a.sno, a.zz from stu s ,address a where s.sno=a.sno;
select …… from 表A 别名 inner join 表B 别名 on ……
select s.sno ,s.sname,a.sno, a.zz from stu s inner join address a on s.sno=a.sno;

SNO   SNAME   SNO        &ZZ
……………………………………
1           A            1            a
2            B            2            b

(2)左外连接 左表内容全部显示,右表只显示匹配内容

select …… from 表A 别名 , 表B 别名 where……(+)
select s.sno , s.sname , a.sno, a.zz from stu s ,address a where s.sno=a.sno(+);

select …… from 表A 别名 left outer join 表B 别名 on……

select s.sno ,s.sname ,a.sno, a.zz from stu s left outer join address a on s.sno=a.sno;

SNO    SNAME   SNO   ZZ
…………………………………….
1         A          1          a
2          B          2         b
4          D

(3)右外连接 右表内容全部显示,左表只显示匹配内容

select …… from 表A 别名 , 表B 别名 where (+)… …
select s.sno ,s.sname,a.sno, a.zz from stu s ,address a where s.sno(+)=a.sno;

select …… from 表A 别名 right outer join 表B 别名 on……

select s.sno ,s.sname,a.sno, a.zz from stu s right outer join address a on s.sno=a.sno;

SNO   SNAME    SNO   ZZ
…………………………………….
1         A          1         a
2          B          2          b
                        3         c

(4)全连接 左 右两表内容全部显示,无匹配处写空

select …… from 表A 别名 right outer join 表B 别名 on……

select s.sno ,s.sname,a.sno, a.zz from stu s full outer join address a on s.sno=a.sno;

SNO   SNAME    SNO   ZZ
…………………………………….
1         A          1           a
2          B          2          b
                        3           c
4          D

(5)笛卡尔积 前一个表的每一行均与后一个表的所有行连接并汇总。

select s.sno ,s.sname,a.sno, a.zz from stu s ,address a ;
SNO SNAME SNO ZZ
…………………………………………….
1        A         1        a
1        A         2        b
1        A         3        c
2        B         1        a
2        B         2        b
2        B         3        c
4        D         1        a
4        D         2        b
4        D         3        c

猜你喜欢

转载自blog.csdn.net/bibibrave/article/details/80300585