조인(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

+ Recent posts