[DB] JOIN이란?

giggle·2023년 8월 13일
0
post-custom-banner

JOIN이란 무엇일까?

데이터베이스에서의 JOIN은 두 개 이상의 테이블을 연결하여 데이터를 결합하는 작업을 말합니다. JOIN을 사용하면 여러 테이블에 분산되어 있는 데이터를 필요한 형태로 가져올 수 있습니다.

JOIN 종류

INNER JOIN

  • INNER JOIN은 두 테이블 간에 공통된 값을 기준으로 결합합니다.
  • 공통된 값이 없는 행은 결과에 포함되지 않습니다.
  • 예를 들어, 사용자 테이블과 주문 테이블에서 공통된 사용자 ID를 기준으로 INNER JOIN하면 해당 사용자가 주문한 내역만 추출됩니다.
SELECT
A.NAME, B.AGE
FROM EX_TABLE A
INNER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP

LEFT OUTER JOIN


LEFT OUTER JOIN은 왼쪽(첫 번째) 테이블의 모든 레코드를 가져오며, 오른쪽(두 번째) 테이블과 공통된 값이 있는 경우에만 결합합니다.

  • 우측 테이블에 조인할 컬럼의 값이 없는 경우 사용
  • 좌측 테이블의 모든 데이터를 포함하는 결과 집합을 생성
  • 공통적인 부분 + LEFT 테이블에 있는 데이터만 SELECT
SELECT
A.NAME, B.AGE
FROM EX_TABLE A
LEFT OUTER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP

RIGHT OUTER JOIN

RIGHT OUTER JOIN은 LEFT OUTER JOIN의 반대로, 오른쪽(두 번째) 테이블의 모든 레코드를 가져오며, 왼쪽(첫 번째) 테이블과 공통된 값이 있는 경우에만 결합합니다.

  • 좌측 테이블에 조인할 컬럼의 값이 없는 경우 사용
  • 우측 테이블의 모든 데이터를 포함하는 결과 집합을 생성
  • 공통적인 부분 + RIGHT 테이블에 있는 데이터만 SELECT
SELECT
A.NAME, B.AGE
FROM EX_TABLE A
RIGHT OUTER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP

FULL OUTER JOIN

FULL OUTER JOIN은 양쪽 테이블의 모든 레코드를 가져오며, 공통된 값이 있는 경우와 없는 경우 모두 포함됩니다.

  • 양쪽 테이블 모두 OUTER JOIN이 필요할 때 사용
  • 두 테이블 모든 데이터 SELECT
SELECT
A.NAME, B.AGE
FROM EX_TABLE A
FULL OUTER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP

CROSS JOIN

Cross Join은 두 개 이상의 테이블을 결합할 때 사용되며, 한 테이블의 모든 레코드와 다른 테이블의 모든 레코드를 모두 결합하는 조인입니다.

  • 모든 경우의 수를 전부 표현해주는 방식
  • 결과로 생성되는 행의 수는 첫 번째 테이블의 행 수와 두 번째 테이블의 행 수를 곱한 값
SELECT
A.NAME, B.AGE
FROM EX_TABLE A
CROSS JOIN JOIN_TABLE B

SELF JOIN

SELF JOIN은 같은 테이블을 다른 별칭으로 사용하여 결합하는 작업을 의미합니다.

  • 자기자신과 자기자신을 조인
  • 하나의 테이블을 여러번 복사해서 조인
  • 자신이 갖고 있는 칼럼을 다양하게 변형시켜 활용할 때 자주 사용
SELECT
A.NAME, B.AGE
FROM EX_TABLE A, EX_TABLE B

참고


피드백 및 개선점은 댓글을 통해 알려주세요😊

profile
배움을 글로 기록하는 개발자가 되겠습니다.
post-custom-banner

0개의 댓글