Notice
Recent Posts
Recent Comments
Archives
반응형
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Today
Total
11-14 12:04
250x250
관리 메뉴

꿈꾸는 개발자의 블로그

[Oracle SQL] JOIN 종류와 과정 설명 (INNER JOIN, OUTER JOIN) 본문

Programming/Oracle SQL

[Oracle SQL] JOIN 종류와 과정 설명 (INNER JOIN, OUTER JOIN)

aldrn29 2023. 3. 7. 16:51

JOIN 종류

JOIN 종류는 크게 INNER JOIN(내부 조인)과 OUTER JOIN(외부 조인)으로 나뉜다. 그리고 해당 조인에 대하여 다양한 조인 방식이 있다.

  • INNER JOIN : INNER JOIN, EQUI JOIN, NON-EQUI JOIN, NATURAL JOIN, CROSS JOIN
  • OUTER JOIN : LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN

 

INNER JOIN

조인 조건구에 따라 두 테이블의 컬럼값이 일치하는 경우를 조회한다.

 

INNER JOIN

ON문을 사용해서 테이블을 연결하여 컬럼값이 일치하는 경우를 조회한다. (INNER 생략 가능)

SELECT * 
FROM A a JOIN B b ON a.ID = b.ID

INNER JOIN

EQUI JOIN

WHERE절에 '='을 사용해서 테이블을 연결하여 컬럼값이 일치하는 경우를 조회한다. 위의 INNER JOIN과 같은 결과를 보여준다.

SELECT * 
FROM A a, B b
WHERE a.ID = b.ID

NON-EQUI JOIN

WHERE절에 '>', '<', '>=', '<=' 등을 사용해서 테이블을 연결하는 것으로 컬럼값이 정확하게 일치하지 않는 것을 조회한다.

SELECT a.ID, b.GRADE
FROM A a, B b
WHERE a.SCORE BETWEEN b.START AND b.END		-- WHERE b.START <= a.SCORE <= b.END

NON-EQUI JOIN

NATURAL JOIN

동일한 타입과 컬럼명을 기준으로 조인이 암시적으로 일어난다.

SELECT * 
FROM A a NATURAL JOIN B b

조인 조건구로 ID 컬럼을 명시하지 않아도 동일한 타입과 컬럼명이기 때문에 자동으로 조인이 된다. 동일한 타입과 컬럼은 모두 조인 기준이 되기 때문에, 예상과 다르게 조회될 수 있다. 

CROSS JOIN

조인 조건구 없이 두 테이블을 조인하는 것으로 카테시안 곱이 발생한다.

SELECT * 
FROM A a CROSS JOIN B b ON a.ID = b.ID

 

OUTER JOIN

조인 조건구에 따라 컬럼값이 일치하는 경우와 기준 테이블에만 있는 값을 포함해서 조회한다.

 

LEFT OUTER JOIN

두 테이블에서 같은 것과 왼쪽 테이블에만 있는 것을 포함해서 조회한다.

SELECT * FROM
WHERE A a LEFT OUTER JOIN B b ON a.ID = b.ID	-- WHERE A a (+)= B b ON a.ID = b.ID

LEFT OUTER JOIN

RIGHT OUTER JOIN

두 테이블에서 같은 것과 오른쪽 테이블에만 있는 것을 포함해서 조회한다.

SELECT * FROM
WHERE A a LEFT OUTER JOIN B b ON a.ID = b.ID	-- WHERE A a =(+) B b ON a.ID = b.ID

FULL OUTER JOIN

두 테이블에서 같은 것과 왼쪽, 오른쪽 테이블에만 있는 것을 모두 포함해서 조회한다.

SELECT * FROM
WHERE A a FULL OUTER JOIN B b ON a.ID = b.ID

 

728x90
728x90
Comments