-
JOIN
관계형 데이터베이스에서는 중복 데이터를 피하기 위해서 데이터를 쪼개 여러 테이블로 나눠서 저장한다. 이렇게 분리되어 저장된 데이터에서 원하는 결과를 도출하기 위해서는 여러 테이블을 조합해야 한다. 관계형 데이터베이스에서 조인(JOIN) 연산자는 관련 있는 컬럼을 기준으로 행을 합쳐주는 연산이다.
- INNER JOIN : 내부조인 - 교집합
- LEFT / RIGHT JOIN : 차집합
- OUTER JOIN : 외부조인 - 합집합 (ORACLE에는 존재하지만, MYSQL에는 없어 LEFT+RIGHT조인으로 사용된다.)
1. INNER JOIN : 내부조인 - 교집합, 공통적인 부분만 SELECT
SELECT A.ID, A.NAME, B.AGE
FROM A INNER JOIN B
ON A.ID = B.ID;2. LEFT JOIN : 차집합, 왼쪽 테이블에 존재하는거 모두 SELECT
SELECT A.ID, A.NAME, B.AGE
FROM A LEFT JOIN B
ON A.ID = B.ID;2-1. LEFT JOIN : 부분집합, 왼쪽 테이블에 존재하는것만 SELECT
SELECT A.ID, A.NAME, B.AGE
FROM A LEFT JOIN B
ON A.ID = B.ID
WHERE B.ID IS NULL;3. RIGHT JOIN : 차집합, 오른쪽 테이블에 존재하는거 모두 SELECT
SELECT A.ID, A.NAME, B.AGE
FROM A RIGHT JOIN B
ON A.ID = B.ID;3-1. RIGHT JOIN : 부분집합, 오른쪽 테이블에 존재하는것만 SELECT
SELECT A.ID, A.NAME, B.AGE
FROM A RIGHTJOIN B
ON A.ID = B.ID
WHERE A.ID IS NULL;4. OUTER JOIN : 합집합, 양쪽 테이블이 가지고 있는 모든 데이터 SELECT
SELECT A.ID, A.NAME, B.AGE
FROM A FULL OUTER JOIN B
ON A.ID = B.ID;5. 각 테이블에 존재하는 것만 SELECT
SELECT A.ID, A.NAME, B.AGE
FROM A FULL OUTER JOIN B
ON A.ID = B.ID;
WHERE A.ID IS NULL OR B.ID IS NULL;'STUDY > DB' 카테고리의 다른 글
그림으로 공부하는 오라클 구조 : 오라클의 여러 프로세스 (0) 2022.04.25 그림으로 공부하는 오라클 구조 : I/O와 디스크의 관계 (0) 2022.04.24 프로젝트 성패를 결정짓는 데이터 모델링 이야기2 (0) 2021.07.08 프로젝트 성패를 결정짓는 데이터 모델링 이야기1 (0) 2021.06.25 SQL : INSERT+UPDATE (0) 2021.04.28