DataBase3 - SQL_JOIN

do yeon kim·2022년 6월 26일
0

DataBase - SQL_JOIN

관계형데이터베이스와 JOIN

관계형 데이터베이스(Relational Database)에서 가장 핵심은 JOIN이다.

JOIN은 여러개의 테이블로 분산된 데이터를 결합해서 하나의 단일한 테이블을 만드는 것이다.
관계형을 담당하는 것이 JOIN이라고 말해도 문제가 없을 것이다.

JOIN은 어떻게 동작하는지, 다양한 JOIN의 종류에 대해서 알아보도록하자!!!



테이블 쪼개기

테이블에 중복된 데이터가 있으면 데이터의 유지보수가 어렵다.
중복된 데이터는 따로 분리해서 또 다른 테이블로 만드는 것이 좋다.


참고
관계형데이터베이스 모든 테이블은 하나의 테마만 가져야 한다. 라고 말하기도 한다.


분리하지 않은 표는 보기가 좋다. 하지만 유지보수가 어렵다.
분리된 테이블은 보기는 불편하다. 유지보수는 쉽다.

이러한 점을 해결하기 위해서 나온 것이 관계형데이터베이스의 JOIN이다.



JOIN 종류

  • LEFT JOIN or LEFT OUTER JOIN

  • RIGHT JOIN or RIGHT OUTER JOIN

  • INNER JOIN

  • FULL OUTER JOIN

  • EXCLUSIVE JOIN


JOIN그림으로 이해하기
https://sql-joins.leopard.in.ua/



LEFT JOIN or LEFT OUTER JOIN

가장 많이 사용되는 JOIN이다.
A만 가지고 있는 부분과 A와 B가 공통으로 가지고 있는 부분을 추출한다.

SELECT * FROM TableA A
LEFT JOIN TableB B ON
A.key = B.key





RIGHT JOIN or RIGHT OUTER JOIN

LEFT JOIN의 반대로 한 것이다.
B만 가지고 있는 부분과 A와 B가 공통으로 가지고 있는 부분을 추출한다.

SELECT * FROM TableA A
RIGHT JOIN TableB B ON
A.key = B.key



INNER JOIN

양쪽 모두에만 존재하는 것을 추출한다.
NULL이 있으면 NULL값은 포함하지 않고 출려하기 때문에 결과에는 NULL값이 출력되지 않는다.

SELECT * FROM TableA A
INNER JOIN TableB B ON
A.key = B.key





FULL OUTER JOIN

모든 테이블에 존재하는 것을 자기고 온다.
많은 데이터베이스 시스템에서 지원하지 않는 경우가 많다.

그래서 LEFT JOIN 과 RIGHT JOIN을 중복은 제거하고 합하면 된다.

SELECT * FROM TableA A
FULL OUTER JOIN TableB B ON
A.key = B.key





EXCLUSIVE JOIN

A쪽에만 존재하는 것을 가지고 오는 경우

SELECT * FROM TableA A
LEFT JOIN TableB B ON
A.key = B.key WHERE B.key IS NULL


B쪽에만 존재하는 것을 가지고 오는 경우

SELECT * FROM TableA A
RIGHT JOIN TableB B ON
A.key = B.key WHERE A.key IS NULL

0개의 댓글