JOIN

오윤혜·2021년 2월 4일
0
post-thumbnail
--각 JOIN 의 역할, 예제 쿼리 1개씩(ANSI SQL 문법대로 작성)
--OUTER JOIN (LEFT, RIGHT, FULL OUTER JOIN) 

LEFT OUTER JOIN

-- LEFT OUTER JOIN : 조인문의 왼쪽에 있는 테이블의 모든 결과를 가져 온 후 오른쪽 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL로 표시한다.
SELECT *
FROM CODE A LEFT OUTER JOIN EMPFAMILY B
      ON A.CD = B.GANGYE_GB;

결과출력

RIGHT OUTER JOIN

--RIGHT OUTER JOIN : 조인문의 오른쪽에 있는 테이블의 모든 결과를 가져온 후 왼쪽의 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL을 표시한다.
SELECT *
FROM CODE A RIGHT OUTER JOIN EMPFAMILY B
      ON A.CD = B.GANGYE_GB;

결과출력

FULL OUTER JOIN

--FULL OUTER JOIN : LEFT OUTER JOIN 과 RIGHT OUTER JOIN을 합친 것으로, 양쪽 모두 조건이 일치하지 않는 것까지 모두 결합해 출력한다
SELECT *
FROM CODE A FULL OUTER JOIN EMPFAMILY B
      ON A.CD = B.GANGYE_GB;
      
--INNER JOIN, NATURAL JOIN, CROSS JOIN

결과출력

INNER JOIN

--INNER JOIN : 두개의 테이블의 교집합
SELECT *
FROM CODE A INNER JOIN EMPFAMILY B
      ON A.CD = B.GANGYE_GB;

결과출력

NATURAL JOIN

--NATURAL JOIN: Equi Join과 동일 하다고 보면 된다.
  -- 두 테이블의 동일한 이름을 가지는 칼럼은 모두 조인이 된다.
  -- 동일한 컬럼을 내부적으로 찾게 되므로 테이블 Alias를 주면 오류가 발생 한다.
  -- 동일한 컬럼이 두개 이상일 경우 JOIN~USING 문장으로 조인되는 컬럼을 제어 할 수 있다.
  -- 아래 두 조인의 결과 값은 같다.
SELECT *
FROM CODE NATURAL JOIN EMPFAMILY;

결과출력

CROSS JOIN

--CROSS JOIN : 한 쪽 테이블의 모든 행들과 다른 테이블의 모든 행을 조인시키는 기능을 한다.
--그래서, CROSS JOIN의 결과 개수는 두 테이블의 행의 개수를 곱한 개수가 된다.
SELECT *
FROM CODE CROSS JOIN EMPFAMILY;

결과출력

Non-Equi JOIN

--Non-Equi Join
  --EQUI JOIN과 NON-EQUI JOIN의 차이점
  --EQUI JOIN : JOIN조건에 서로 다른 조건(=)을 가진 데이터를 JOIN해서 가져오는 방법
  --NON-EQUI JOIN : 같은 조건이 아닌 크거나 작거나 하는 경우 JOIN을 수행하는 방법
 SELECT ENAME, SAL, GRADE 
 FROM EMP, SALGRADE 
 WHERE SAL BETWEEN LOSAL AND HISAL;
 -- 같은 컬럼은 없지만 값을 가져다 쓸수있다.

결과출력

profile
안녕하세요

0개의 댓글