1.相等连接(即内连接)
只有连接列上在两个表中都出现且值相等的行才会出现查询结果中。
例如:SELECT * FROM A,B WHERE A.ID=B.ID;
如图所示:
2.外连接
采用"(+)"来识别oracle数据库的LEFT/RIGHT/FULL OUTER JOIN连接方式。
(1)左条件(+)=右条件
代表除了显示匹配相等连接的信息之外,还显示右条件所在表中无法匹配相等连接条件的信息,即右边表所有的行都显示。称为"右外连接"。
例如:
SELECT... FROM 表1 RIGHT OUTER JOIN 表2 ON 连接条件
或SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO(+) = DEPT.DEPTNO;
如图所示:
(2)左条件=右条件(+)
代表除了显示匹配相等连接条件的信息之外,还显示左条件所以的表中无法匹配相等连接条件的信息,即左边表所有行都显示,称为"左外连接"。
例如:SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 连接条件
或SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO= DEPT.DEPTNO(+);
如图所示:
(3)全外连接,包含两个表的全部行。
例如:SELECT ... FROM 表1 FULL JOIN 表2 ON 连接条件
如图所示:
3.不等连接
两个表中相关的两列进行不等连接,比较符号一般为>,
例如:SELECT EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMP WHERE EMP.SAL BETWEEN LOSAL AND HISAL;
4.自连接
自连接是数据库经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据中表的连接方式。其将原表复制一份作为另一个表,两表做笛卡尔儿相等连接。
例如:
SELECT WORKER.ENAME,WORKER.MGR,MANAGER.EMPNO,MANAGER.ENAME FROM EMP WORKER,EMP MANAGER
WHERE WORKER.MGR = MANAGER.EMPNO;