조인(Join)이란?
- 한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것
- 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법
* 두 개 이상의 테이블을 조인하기 위해서는 적어도 하나 이상의 외래키가 필요함
조인의 필요성
→ 서로 관계 있는 데이터가 여러 테이블로 나뉘어 저장되므로, 각 테이블에 저장된 데이터를 효과적으로 검색하기 위해 조인이 필요
조인의 종류
1) 내부조인 (INNER JOIN)
- 여러 애플리케이션에서 사용되는 가장 흔한 결합 방식이며, 기본 조인 형식으로 간주
- 명시적 조인 표현(explicit)과 암시적 조인 표현(implicit) 존재
→ 명시적
JOIN 키워드를 사용하며, ON 키워드를 조인에 대한 구문을 지정하는데 사용
SELECT * FROM employee INNER JOIN department ON employee.DepartmentID = department.DepartmentID;
→ 암시적
SELECT 구문의 FROM 절에서 콤마를 사용해 단순히 조인을 위한 여러 테이블을 나열
SELECT * FROM employee, department WHERE employee.DepartmentID = department.DepartmentID;
2) 동등조인 (EQUI JOIN)
- 비교자 기반의 조인이며, 조인 구문에서 동등비교만을 사용
- 조인조건에 '=' 연산자가 사용된 조인
3) 자연조인 (NATURAL JOIN)
- INNER JOIN에 속함
- 반드시 두 테이블 간의 동일한 이름, 타입을 가진 컬럼이 필요
- 조인에 이용되는 컬럼은 명시하지 않아도 자동으로 조인에 사용 → 두 테이블에서 동일한 컬럼명을 갖는 컬럼은 모두 조인이 됨
- 두 테이블이 동시에 가지고 있는 컬럼의 값이 전부 같은 것만 골라냄
4) 교차조인 (CROSS JOIN)
- 조인되는 두 테이블에서 곱집합을 반환
- Catesian product, Cross product 라고도 함
- 명시적, 암시적 조인 표현 존재
→ 명시적
SELECT * FROM employee CROSS JOIN department;
→ 암시적
SELECT * FROM employee, department;
5) 외부조인 (OUTER JOIN)
* LEFT OUTER JOIN
- 왼쪽 테이블을 기준으로 조인
- 왼쪽 테이블의 데이터 모두 출력 → 오른쪽 테이블의 컬럼값에 NULL 발생 가능
* RIGHT OUTER JOIN
- 오른쪽 테이블을 기준으로 조인
- 오른쪽 테이블의 데이터 모두 출력 → 왼쪽 테이블의 컬럼값에 NULL 발생 가능
* FULL OUTER JOIN
- 조인을 하는 테이블들의 모든 데이터를 출력
- 합집합
※ MySQL에서는 FULL OUTER JOIN을 지원하지 않으므로, LEFT OUTER JOIN 결과와 RIGHT OUTER JOIN 결과를 UNION 하여 사용
6) 셀프조인 (SELF JOIN)
- 자기자신을 조인하는 것
- 자신이 갖고 있는 칼럼을 다양하게 변형시켜 활용할 때 자주 사용
'CS > 데이터베이스' 카테고리의 다른 글
트랜잭션 (Transaction) (0) | 2022.08.06 |
---|---|
트랜잭션 격리 수준 (Transaction Isolation Level) (0) | 2022.07.23 |
정규화 (Normalization) (0) | 2022.07.16 |
이상 현상 (Anomaly) (0) | 2022.07.16 |
키 (Key) (0) | 2022.07.09 |