在讲述之前,假设有如下两个表EMP, DEPT, 并且他们数据如下:
1. 内连接:
执行完内连接的结果显示为:(仅有14行,即:必须两个表都要满足连接条件)
2. 外连接(左外连接)
如下:(共计15行,左表EMP中不符合项连接条件的也都显示出来)
3. 外连接(右外连接)
如下:(共计15行,右边表DEPT中不符合项连接条件的也都显示出来)
4. 外连接(完全外连接)
如下:(共计16行,左表EMP,右表DEPT中,均中不符合项连接条件的也都显示出来。 )
完全外连接的执行原理是:先执行一个完整左外连接和一个右外连接查询,然后结果合并,去重复记录。
5. 自然连接
当多表连接时,自然连接有ORACLE数据系统自动将两个表相同列进行连接,由于此种连接严格要求字段列名必须相同,并且不能为表,列使用限定词,所以实际使用中,非常少!!!
如下:14行记录
6. 自连接
顾名思义自己连接自己。 即:表中一个列B,是该表主键A的一个外键(也叫做“自引用式”)。 以上例子中,mgr列 值即是另外一回empno的值,因为mgr也是emp.
7. 交叉连接
又称为笛卡尔连接,这种查询结果非常冗余,但是可以通过WHERE来过滤有用记录.
以上例子中,将会有15*4= 60条记录
SELECT * FROM EMP CROSS JOIN DEPT
截图省略。