ORACLE----连接查询

ORACLE----连接查询

连接查询包括:内连接1种,外连接3种

内连接:

INNER JOIN ON (INNER 可以省略不写)

SELECT *

FROM 表1

INNER JOIN 表2

ON 表1.字段1 = 表2.字段1 AND 表1.字段2 = 表2.字段2

SELECT *
  FROM EMP E
  JOIN DEPT D
  ON E.DEPTNO = D.DEPTNO
  WHERE SAL > 2000;

--笛卡尔积(oracle写法)

SELECT E.*,D.DNAME,D.LOC
FROM EMP E,DEPT D
WHERE E.DEPTNO = D.DEPTNO;

外连接:

1、左外连接

SELECT *

FROM 表1    --主表

LEFT JOIN 表2  --从表

ON 表1.字段1 = 表2.字段1 AND 表1.字段2 = 表2.字段2

SELECT *
  FROM EMP E
  LEFT JOIN DEPT D
  ON E.DEPTNO = D.DEPTNO;

--笛卡尔积(oracle写法)

SELECT E.*,D.DNAME,D.LOC
FROM EMP E,DEPT D
WHERE E.DEPTNO = D.DEPTNO(+); --+代表从表

2、右外连接

SELECT *

FROM 表1    --主表

RIGHT JOIN 表2  --从表

ON 表1.字段1 = 表2.字段1 AND 表1.字段2 = 表2.字段2

SELECT *
  FROM EMP E
  RIGHT JOIN DEPT D
  ON E.DEPTNO = D.DEPTNO;

--笛卡尔积(oracle写法)

SELECT E.*,D.DNAME,D.LOC
FROM EMP E,DEPT D
WHERE E.DEPTNO(+)= D.DEPTNO; --+代表从表

3、全外连接(没有从表)

SELECT *

FROM 表1    

FULL JOIN 表2  

ON 表1.字段1 = 表2.字段1 AND 表1.字段2 = 表2.字段2

SELECT *
  FROM EMP E
  FULL JOIN DEPT D
  ON E.DEPTNO = D.DEPTNO;

连接方法有:等值连接,哈希连接,排序合并,嵌套循环

posted @ 2022-01-05 11:17  左叔  阅读(208)  评论(0)    收藏  举报