두 개 이상의 테이블을 하나의 테이블처럼 가로로 늘어뜨려 출력하기 위해 사용하는 조인.
대상 데이터를 어떻게 연결하느냐에 따라서 등가 조인, 비등가 조인, 자체 조인, 외부 조인등으로 구분한다.
등가 조인 (EQUAL JOIN)
테이블을 연결한 후에 출력 행을 각 테이블의 특정 열에 일치한 데이터를 기준으로 선정하는 방식.
내부조인(INNER JOIN) 또는 단순조인(SIMPLE JOIN)이라고 부른다.
일반적으로 가장 많이 사용되는 조인 방식이다. 따라서 외부조인(OUTER JOIN)처럼 이름을 특별히 명시하지 않을 때 '조인을 사용한다'는 것은 대부분 특정 열 값이 일치한 출력결과를 사용하는 방식이다.
여러 테이블의 열 이름이 같을 때 유의점
등가 조인을 사용할 때 조인 조건이 되는 각 테이블의 열 이름이 같을 경우에 해당 열 이름을 테이블 구분 없이 명시하면 오류가 발생한다.
겹치지 않는 테이블은 어느 테이블의 열인지 명시하지 않아도 상관은 없다.
하지만 조인 테이블 개수가 많아지거나 각 테이블별 열 개수가 많아지는 경우는 구분이 어려우므로 겹치지 않는 열 이름이라도 테이블이나 별칭을 명시하는 것이 좋다.
조인 테이블 개수와 조건식 개수의 관계
01.JOIN 에서 설명했던 것처럼, 조인 조건을 제대로 지정하지 않으면 데카르트 곱 때문에 정확히 연결되지 않아 필요 없는 데이터도 모두 조합되어 출력되었다. 데카르트 곱 현상이 일어나지 않게 하는 데 필요한 조건식의 최소 개수는 조인 테이블 개수에서 하나를 뺀 값이다.
(조인 테이블이 2개이면 조건식은 최소 1개, 조인 테이블이 3개이면 조건식은 최소 2개)
비등가 조인 (NON-EQUAL JOIN)
등가 조인 방식 외의 방식.
등가 조인 방식에 비해 자주 사용하는 방식은 아니다. 하지만 조인 조건이 특정 열의 일치 여부를 검사하는 방식 외에 다른 방식도 사용할 수 있다.
자체 조인 (SELF JOIN)
하나의 테이블을 여러개의 테이블처럼 활용하여 조인하는 방식.
물리적으로 동일한 테이블 여러 개를 사용할 때 발생할 수 있는 문제점 해결.
(문제점 1. 데이터 저장용량이 N배가 된다 2.기존 테이블에 데이터를 편집(추가, 변경, 삭제 등)할 때의 카피테이블도 데이터를 유지보수 함)
FROM절에 같은 테이블을 여러 번 명시하되, 별칭을 다르게 지정해주면 된다.
외부 조인 ( OUTER JOIN )
두 테이블간 조인 수행에서 조인 기준 열의 어느 한쪽이 NULL이어도 강제로 출력하는 방식.
외부조인은 좌, 우를 따로 나누어 지정하는데 LEFT OUTER JOIN, RIGHT OUTER JOIN으로 쓴다.
좌우 양쪽 모두를 외부 조인 처리하는 전체 외부 조인(FULL OUTER JOIN)도 있다.
주의: 내부조인, 외부조인 이름에 대해서
외부 조인을 사용하지 않는 등가, 자체 조인은 조인 조건에 해당하는 데이터가 존재할 경우에만 출력하기 때문에 외부 조인과 반대 의미로 '내부 조인' 이라고 부른다. 외부 조인은 영문 그대로 아우터조인(OUTER JOIN)이라고 더 많이 부른다.
'DATABASE > JOIN : 여러 테이블을 하나의 테이블처럼' 카테고리의 다른 글
03. SQL-99 표준 문법으로 배우는 조인 (0) | 2024.03.12 |
---|---|
01.JOIN (0) | 2024.03.12 |