[DB] JOIN 정리
2023. 12. 30. 11:41ㆍCS/DataBase
JOIN 종류
- Inner Join
- Outer Join
- Left Join
- Right Join
- 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;
'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 |