4.6 Types of Joins
조인의 종류
조인은 데이터베이스에서 두 개 이상의 테이블을 결합하여 원하는 데이터를 조회할 때 사용되는 중요한 연산입니다. 다양한 조인 방식이 있으며, 각 방식은 테이블 간의 데이터 관계를 기반으로 결과를 반환합니다. 각 조인의 종류와 원리를 이해하면 효율적인 데이터 조회를 수행할 수 있습니다.
4.6.1 내부조인 (Inner Join)
**내부조인(Inner Join)**은 두 테이블 간의 공통된 값을 가진 행들만 결합하는 방식입니다. 즉, 조인 조건을 만족하는 데이터만 결과 집합에 포함됩니다. 내부조인은 가장 많이 사용되는 조인 방식으로, 기본적으로 두 테이블에서 일치하는 레코드만 반환합니다.
예시: 고객 테이블과 주문 테이블이 있다고 가정해 봅시다. 고객이 실제로 주문한 내역을 조회하려면, 두 테이블을 고객 ID를 기준으로 내부조인할 수 있습니다.
이 쿼리는 고객 이름과 그들이 주문한 날짜를 반환합니다. 여기서, 고객과 주문 간의 일치하는 레코드만 결과에 포함됩니다.
4.6.2 왼쪽조인 (Left Join)
**왼쪽조인(Left Join)**은 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블에서 조인 조건을 만족하는 행이 있으면 그 값을 가져옵니다. 만약 오른쪽 테이블에 대응되는 값이 없으면 결과에 NULL
값이 반환됩니다. 왼쪽조인은 "외부 조인"의 한 형태로, 왼쪽 테이블의 모든 데이터를 유지하면서 관련된 데이터를 결합하고자 할 때 유용합니다.
예시: 고객 테이블의 모든 고객과 그들의 주문 내역을 조회하려고 하지만, 주문을 하지 않은 고객도 포함하고 싶다면 왼쪽조인을 사용할 수 있습니다.
이 쿼리는 모든 고객의 이름과 그들의 주문 날짜를 반환합니다. 주문을 하지 않은 고객의 경우, order_date
값이 NULL
로 표시됩니다.
4.6.3 오른쪽 조인 (Right Join)
**오른쪽조인(Right Join)**은 왼쪽조인과 반대로, 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블에서 조인 조건을 만족하는 행이 있으면 그 값을 가져옵니다. 오른쪽 테이블에 있는 모든 데이터가 보존되며, 왼쪽 테이블에서 일치하지 않는 데이터는 NULL
로 채워집니다. 오른쪽조인은 덜 자주 사용되지만, 오른쪽 테이블의 모든 데이터를 포함해야 할 때 유용합니다.
예시: 주문 테이블의 모든 주문을 조회하면서, 해당 주문을 한 고객의 이름을 포함하고 싶을 때 오른쪽조인을 사용할 수 있습니다.
이 쿼리는 모든 주문과 그 주문을 한 고객의 이름을 반환합니다. 만약 고객이 삭제되었거나 고객 정보가 없을 경우, name
컬럼이 NULL
로 반환됩니다.
4.6.4 합집합 조인 (Full Outer Join)
**합집합 조인(Full Outer Join)**은 왼쪽 테이블과 오른쪽 테이블의 모든 행을 반환합니다. 조인 조건을 만족하는 행은 결합되고, 만족하지 않는 행들은 NULL
로 채워진 상태로 반환됩니다. 합집합 조인은 두 테이블 간의 모든 데이터 관계를 확인해야 할 때 유용합니다.
예시: 고객과 그들의 주문 내역을 모두 조회하되, 고객 정보가 없거나 주문이 없는 경우에도 데이터를 포함하고 싶다면 합집합 조인을 사용할 수 있습니다.
이 쿼리는 모든 고객과 모든 주문을 반환하며, 일치하지 않는 데이터는 NULL
로 표시됩니다.
Last updated