[DB] JOIN 정리

2023. 12. 30. 11:41CS/DataBase

 

JOIN 종류
  1. Inner Join
  2. Outer Join
    1. Left Join
    2. Right Join
    3. Full Join

 

 

Inner Join

 

2개의 테이블 컬럼을 합쳐 두 테이블 간에 일치하는 행만을 반환해 새 테이블을 만든다. 말 그대로 두 테이블들의 교집합을 반환한다. 또한 공통된 값의 경우 행에 포함되지 않기 때문에, 결과의 크기가 작아진다.

 

SELECT *
FROM left_table
INNER JOIN right_table ON left_table.common_column = right_table.common_column;

 

 

 

Left Join

 

기준이되는 왼쪽 테이블의 모든 행과 오른쪽 테이블에서 일치하는 행 값을 반환해 새 테이블을 만든다. 오른쪽에서 일치하는 테이블이 없을 경우에는 NULL 값을 반환한다. Left Join의 경우 왼쪽 테이블의 모든 행을 유지하므로, 왼쪽 테이블에 존재하는 데이터가 더 중요할 경우 사용한다. 결과적으로 왼쪽 행값을 유지하며 오른쪽 테이블에 일치하는 값이 있는 경우 추가 정보를 제공하는 형식이다.

 

SELECT *
FROM right_table
RIGHT JOIN left_table ON right_table.column = left_table.column;

 

 

Right Join

 

Left Join과는 반대로 오른쪽 테이블의 모든 행과 왼쪽 테이블에서 일치하는 행 값을 반환해 새 테이블을 만든다. 횐쪽에 일치하는 값이 없을 경우 NULL 값을 반환한다. Right Join의 경우 오른쪽 테이블의 모든 행을 유지하므로, 오른쪽 테이블에 존재하는 데이터가 더 중요할 경우 사용한다. 결과적으로 오른쪽 값을 유지하며 왼쪽 테이블에 일치하는 값이 있는 경우 추가 정보를 제공하는 형식이다.

 

SELECT *
FROM left_table
RIGHT JOIN right_table ON left_table.column = right_table.column;

 

 

Full Join

 

Full join의 경우 양쪽 테이블에서 일치하는 행과 각 테이블에서 일치하지 않는 모든 행을 반환한다. 일치하지 않는 경우에는 NULL 값이 해당 열에 표시된다.

 

SELECT *
FROM left_table
FULL JOIN right_table ON left_table.column = right_table.column;

 

350

'CS > DataBase' 카테고리의 다른 글

[DB] 회복  (0) 2023.12.21
[DB] 트랜잭션 고립 수준  (0) 2023.12.21
[DB] 동시성 제어  (0) 2023.12.20
[DB] 트랜잭션  (0) 2023.12.20
[DB] 정규화  (0) 2023.12.19