SQL 各种连接:内连接,外连接(左外,右外,完全外)

在讲述之前,假设有如下两个表EMP, DEPT, 并且他们数据如下:

SQL 各种连接:内连接,外连接(左外,右外,完全外)SQL 各种连接:内连接,外连接(左外,右外,完全外)

1. 内连接:

执行完内连接的结果显示为:(仅有14行,即:必须两个表都要满足连接条件)

SQL 各种连接:内连接,外连接(左外,右外,完全外)

2.  外连接(左外连接)

如下:(共计15行,左表EMP中不符合项连接条件的也都显示出来)

SQL 各种连接:内连接,外连接(左外,右外,完全外)

3. 外连接(右外连接)

如下:(共计15行,右边表DEPT中不符合项连接条件的也都显示出来)

SQL 各种连接:内连接,外连接(左外,右外,完全外)

4. 外连接(完全外连接)

如下:(共计16行,左表EMP,右表DEPT中,均中不符合项连接条件的也都显示出来。 )

完全外连接的执行原理是:先执行一个完整左外连接和一个右外连接查询,然后结果合并,去重复记录。

SQL 各种连接:内连接,外连接(左外,右外,完全外)

5.  自然连接 

当多表连接时,自然连接有ORACLE数据系统自动将两个表相同列进行连接,由于此种连接严格要求字段列名必须相同,并且不能为表,列使用限定词,所以实际使用中,非常少!!!

如下:14行记录

SQL 各种连接:内连接,外连接(左外,右外,完全外)

6.   自连接

顾名思义自己连接自己。 即:表中一个列B,是该表主键A的一个外键(也叫做“自引用式”)。 以上例子中,mgr列 值即是另外一回empno的值,因为mgr也是emp.

SQL 各种连接:内连接,外连接(左外,右外,完全外)

 

7.  交叉连接

 又称为笛卡尔连接,这种查询结果非常冗余,但是可以通过WHERE来过滤有用记录.

以上例子中,将会有15*4= 60条记录

SELECT    *     FROM   EMP CROSS JOIN DEPT

截图省略。

SQL 各种连接:内连接,外连接(左外,右外,完全外)

上一篇:Windows UWP 哔哩哔哩(B站)缓存视频重命名工具


下一篇:MYSQL复习笔记11-排序分组