DB/이론

10. [ DB ] MySQL 문법 : JOIN 정의와 종류

천재단미 2024. 12. 4. 17:31
728x90
반응형

 

1. 정의 

 

SQL 조인이란 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법입니다. 
주로 자신이 검색하고 싶은 컬럼이 다른 테이블에 있을 경우 사용하며, 여러 개의 테이블을 마치 하나의 테이블인 것처럼 활용합니다. 
일반적으로 Primary key나 Foreign key를 사용하여 두 테이블을 연결하며, 테이블을 연결하려면 적어도 하나의 컬럼은 서로 공유되고 있어야 합니다.

 

 

 

 2. 주요 종류

 

 

 

1)  INNER JOIN

9

(1)  정의

 

JOIN에 대해 얘기할 때는 보통 INNER JOIN을 지칭하며, 두 테이블의 교집합을 반환합니다.

 

 

 

(2) 특징

  • 일치하는 값만 반환: 조인 조건을 만족하는 행만 결과에 포함됩니다.
  • NULL 값 제외: 일치하지 않는 행은 결과에서 제외됩니다.
  • 다중 테이블 조인: 두 개 이상의 테이블을 조인할 수 있습니다.

 

 

(3) 기본구문 

 

 



SELECT columns FROM table1
INNER JOIN table2   
ON table1.column_name = table2.column_name;


-- JOIN과 INNER JOIN은 기능적으로 동일합니다. INNER JOIN이 더 명시적입니다.



 

 

 

 

(4) 활용 예 

 

  • 고객 주문 데이터 조회
  • 제품 재고 관리
  • 복잡한 관계형 데이터셋 처리

 

 

 

 

 

 

2) OUTER JOIN

 

 

(1) 정의 

 

SQL에서 두 개 이상의 테이블을 결합하는 조인 유형으로, INNER JOIN과 달리 일치하지 않는 행도 결과에 포함시킵니다.

 

 

 

(2) 특징

 

  • 모든 레코드 반환: 일치하는 행뿐만 아니라 일치하지 않는 행도 결과에 포함됩니다.
  • NULL 값 포함: 일치하지 않는 행의 경우 해당 열에 NULL 값이 채워집니다.

 

 

(3) 종류

 

  • LEFT OUTER JOIN: 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 반환합니다.
  • RIGHT OUTER JOIN: 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 반환합니다.
  • FULL OUTER JOIN: 양쪽 테이블의 모든 행을 반환합니다.

 

 

9-1

 

(4) 기본 구문

 



SELECT columns FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;

 

 

 

 

 

3) CROSS JOIN

 

 

 

(1) 정의 

 

SQL에서 두 개 이상의 테이블을 결합하는 조인 유형으로, 두 테이블의 모든 가능한 조합을 생성합니다. 

 

 

(2) 특징

 

  • 카티션 곱(Cartesian product) 생성: 첫 번째 테이블의 각 행을 두 번째 테이블의 모든 행과 결합합니다.
  • 결과 크기: 결과 집합의 크기는 첫 번째 테이블의 행 수와 두 번째 테이블의 행 수를 곱한 것과 같습니다.
  • 조인 조건 없음: INNER JOIN과 달리 조인 조건이 필요하지 않습니다.

 

 

9-2

 

(3) 기본 구문

 



SELECT columns FROM table1
CROSS JOIN table2;



 

 

 

(4) 주의 사항

 

  • CROSS JOIN은 대량의 데이터를 생성할 수 있으므로 신중하게 사용해야 합니다.
  • WHERE 절과 함께 사용하면 INNER JOIN처럼 작동할 수 있습니다.

 

 

 

4) SELF JOIN

 

 

(1) 정의 

 

SQL에서 테이블을 자기 자신과 조인하는 방법입니다. 주요 특징은 다음과 같습니다.

 

 

(2) 특징 

 

  • 단일 테이블 내에서 데이터를 비교하거나 결합할 때 사용됩니다.
  • 테이블의 가상 복사본을 만들어 원본 테이블과 관계를 설정합니다.
  • 주로 계층적 데이터, 버전 관리, 재귀적 쿼리, 네트워크 데이터 처리에 활용됩니다.

9-3

 

(3) 기본 구문

 



SELECT t1.column, t2.column
FROM table AS t1
JOIN table AS t2
ON t1.related_column = t2.related_column;



 

 

728x90
반응형
home
}