JOIN

  • 여러 테이블에 흩어져 있는 정보 중 사용자가 필요한 정보만 가져와서 가상의 테이블처럼 만들어서 결과를
    보여주는 것
  • 2개의 테이블을 조합하여 하나의 열로 표현한다.

 

예시)

EMP 테이블   DEPT 테이블
EMPNO ENAME JOB DEPTNO   DEPTNO DNAME LOC
7839 KING PRESIDENT 90 10 ACCOUNT N_YORK
7566 JONES MANAGER 20 20 RESEARCH DALLAS
7788 SCOTT ANALYST 10 30 SALES CHICAGE
7654 MARTIN SALESMAN 30 40 OPERATE BOSTON
7900 JAMES CLERK        

 

 

 

JOIN 종류

1. INNER JOIN

  • 조건에 해당하는 값만 출력
  • 서로 연관된 내용만 검색하는 조인 방법

명시적 조인 표현 암시적 조인 표현
SELECT a.empno, a.ename, a.job, a.deptno, b.dname
FROM EMP a JOIN DEPT b
ON a.deptno = b.deptno;
SELECT a.empno, a.ename, a.job, a.deptno, b.dname
FROM EMP a, DEPT b             
WHERE a.deptno= b.deptno; 

 

조인 결과

"KING"과 "JAMES"의 DEPTNO가 DEPT 테이블에 존재하지 않는다. 이 상태에서 INNER JOIN을 하면 
"KING", "HAMES"의 데이터는 조회되지 않는다.

 

2. OUTER JOIN

  • 조인하는 여러 테이블에서 한 쪽에는 데이터가 있고 한 쪽에는 데이터가 없는 경우, 데이터가 있는 쪽 테이블의 
    내용을 전부 출력하는 방법
  • 조인 조건에 만족하지 않아도 해당 행을 출력하고 싶을 때 사용

 

OUTER JOIN 종류

  LEFT OUTER JOIN 

  • 왼쪽 테이블      =>  값이 있는 행은 전부 출력
    오른쪽 테이블   =>  조건에 맞는 것만 출력

명시적 조인 표현 암시적 조인 표현
SELECT a.empno, a.ename, a.job, a.deptno, a.dname
FROM EMP a LEFT OUTER JOIN  DEPT b
ON a.deptno = b.deptno;
SELECT a.empno, a.ename, a.job, a.deptno, a.dname
FROM EMP a, DEPT b
WHERE a.deptno = b.deptno(+);

 

 조인 결과 

 조인 조건에 만족하지 않는 "KING"과 "JAMES"도 출력됨.

'DB' 카테고리의 다른 글

관계형 데이터베이스 1:1, 1:N, M:N 관계  (0) 2022.02.24

+ Recent posts