티스토리 뷰

데이터베이스 JOIN

  여러개의 테이블을 하나의 레코드로 조회하기 위해서 JOIN을 사용한다. 테이블을 연결해서 조회하려면 

  테이블과 테이블 사이에 적어도 하나의 컬럼을 공유해야한다. 

JOIN의 종류
  • Inner JOIN
  • Left Outer JOIN
  • Right Outer JOIN
  • Full Outer JOIN
  • Cross JOIN
  • Self JOIN

Inner JOIN

inner join

SELECT S.ID, S.NAME, M.MAJOR 
FROM STUDENT S, MAJOR M
WHERE S.ID = M.ID

SELECT S.ID, S.NAME, M.MAJOR 
FROM STUDENT S
INNER JOIN MAJOR M
ON S.ID = M.ID

    기준 테이블과 JOIN 테이블의 중복된 값을 가져오기 위해 사용한다.결과는 다음과 같다. 

 

Left Outer JOIN

LEFT OUTER JOIN

SELECT
S.ID, S.NAME, M.MAJOR
FROM STUDENT S
LEFT OUTER JOIN MAJOR M
ON S.ID = M.ID

  왼쪽 테이블 데이터, 왼쪽 테이블과 조인 테이블과의 중복 데이터를 가져온다. LEFT OUTER JOIN의 결과는 다음과 R

  같다.

Right Outer JOIN

Right Outer JOIN

SELECT S.ID, S,PW, M.MAJOR
FROM STUDENT S
RIGHT OUTER JOIN MAJOR M
ON S.ID = M.ID

  Left Outer JOIN 과 반대. RIGHT OUTER JOIN의 결과는 다음과 같다. 

Full Outer JOIN

FULL OUTER JOIN

SELECT S.ID, S.PW, M.MAJOR
FROM STUDENT S
FULL OUTER JOIN MAJOR M
ON S.ID = M.ID

  테이블의 합집합을 원할 때 사용한다. 아래의 테이블을 FULL OUTER JOIN한 결과는 다음과 같다.

Full Outer JOIN

Cross JOIN

  테이블과 테이블을 곱하여 모든 경우의 수를 나타내고 싶을 때 사용한다.

SELECT E.ID, E.PHONE, D.DEPTNO, D.DEPTNAME
FROM EMPLOYEE E
CROSS JOIN DEPARTMENT M

Cross JOIN

Self JOIN

  자기 자신의 테이블과 JOIN 할 때 사용한다. 보통 원하는 데이터가 자기 자신의 테이블에 있을 때 사용. 아래의 경우

  ID, ID 직원의 직급, 담당, 담당의 직급을 조회하기 위해서는 SELF JOIN이 필요하다.

SELECT E.ID, E.직급, E.담당, S.직급 AS 담당직급
FROM EMPLOYEE A JOIN EMPLOYEE B
ON A.ID = B.ID;

Self JOIN

 

'데이터베이스' 카테고리의 다른 글

[MySQL] MySQL 아키텍처 (1)  (0) 2022.03.26
[DB] 데이터베이스 정규화  (0) 2022.03.07
[DB] 인덱스(Index)의 자료구조  (0) 2022.02.12
[DB] 인덱스 개념  (0) 2022.02.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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 31
글 보관함