728x90
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 |
---|