SQLD/SQL 기본과 활용

OUTER JOIN 심화 (ANSI/ISO SQL 표준방식의 OUTER JOIN)

DevPing9_ 2020. 8. 27. 19:51

참고1 ) (+)로 조인시, 불명확하게 보일 수도 있고, DMBS 마다 문법이 다르며,

           (+)가 누락된 조인 및 검색 조건 존재시 INNER JOIN으로 수행, FULL OUTER JOIN 미지원 등 불편함이 있다.

 

참고2 ) 그리하여, ANSI/ISO SQL 표준 방식의 OUTER JOIN 문법을 사용하면 높은 호환성을 가질 수 있다.

           본문은 ANSI/ISO SQL 표준 방식을 사용할 것이다. (FROM절에서 정의한다.)

 

수행에 사용한 데이터

좌) EMP, 우) DEPT

 

1. LEFT OUTER JOIN

 - 조인 수행시 좌측 테이블이 기준이 되며 먼저 읽는다. 우측 테이블에서 조인 대상 데이터를 읽어온다.

 - 즉, 우측 테이블에서 조인 조건을 만족하는 값이 없으면, NULL 값을 반환한다.

 - LEFT JOIN 으로 OUTER 키워드를 생략 할 수 있다.

# LEFT OUTER JOIN
SQL> SELECT A.ENAME, B.DNAME
     FROM EMP A LEFT OUTER JOIN DEPT B                          #(=FROM EMP A LEFT JOIN DEPT B)
     ON B.DEPTNO = A.DEPTNO;
     
# 실행결과
ENAME       DNAME
------------------
유희선         영업
고종수         유통
이천수         마케팅
이청용         영업
박지성         생산
도롱뇽         

 

 

2. RIGHT OUTER JOIN 

 - 조인 수행시 우측 테이블이 기준이 되며 먼저 읽는다. 좌측 테이블에서 조인 대상 데이터를 읽어온다.

 - 즉, 좌측 테이블에서 조인 조건을 만족하는 값이 없으면, NULL 값을 반환한다.

 - RIGHT JOIN 으로 OUTER 키워드를 생략 할 수 있다.

 

# RIGHT OUTER JOIN
SQL> SELECT A.ENAME, B.DNAME
     FROM EMP A RIGHT OUTER JOIN DEPT B                          #(=FROM EMP A RIGHT JOIN DEPT B)
     ON B.DEPTNO = A.DEPTNO;
     
# 실행결과
ENAME       DNAME
------------------
유희선         영업
이청용         영업
고종수         유통
박지성         생산
이천수         마케팅
               SW개발
               DMBS관리

 

 

3. FULL OUTER JOIN

 - LEFT 와 RIGHT OUTER JOIN의 결과를 합집합으로 처리한 결과와 동일하다.

  (조인에 성공한 행들은 교집합으로 간주하고 한번만 표시한다.)

  (출력순서는 RIGHT -> LEFT 순이다)

 - FULL JOIN 으로 OUTER 키워드를 생략 할 수 있다.

# FULL OUTER JOIN
SQL> SELECT *
     FROM EMP A FULL OUTER JOIN DEPT B                          #(=FROM EMP A FULL JOIN DEPT B)
     ON B.DEPTNO = A.DEPTNO;
     
# 실행결과
ENAME       DEPTNO       DEPTNO       DNAME
---------------------------------------------------------------------
유희선           D01           D01         영업
이청용           D01           D01         영업
고종수           D02           D03         유통
박지성           D03           D03         생산
이천수           D04           D04         마케팅
                  D05            D05           SW개발
                  D06            D06          DMBS관리
도롱뇽                                            

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90