728x90
Join
두 개 이상의 테이블에서 관련 있는 데이터를 결합
1) Inner Join
두 테이블의 교집합
즉, 두 테이블의 Join 조건에 일치하는 행만 반환
SELECT * FROM table1
INNER JOIN table2
ON table1.matching_column = table2.matching_column;
2) Left (Outer) Join
첫 번째 테이블의 모든 행과 두 번째 테이블에서 일치하는 행을 반환
일치하지 않는 경우, 두 번째 테이블의 값은 NULL로 반환
SELECT * FROM table1
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
3) Right (Outer) Join
두 번째 테이블의 모든 행과 첫 번째 테이블에서 일치하는 행을 반환
일치하지 않는 경우, 첫 번째 테이블의 값은 NULL로 반환
SELECT * FROM table1
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
4) Full (Outer) Join
두 테이블의 합집합을 반환
즉, 두 테이블 중 어느 한쪽에만 존재하는 행도 모두 반환하며, 일치하지 않는 경우 해당 테이블의 값은 NULL로 반환
SELECT * FROM table1
FULL OUTER JOIN table2
ON table1.matching_column = table2.matching_column;
5) Cross Join (또는 Cartesian Product)
두 테이블 간에 조건이나 일치하는 열 없이 모든 가능한 조합을 생성
이로 인해 반환되는 행의 수는 두 테이블의 행 수의 곱이 된다.
SELECT * FROM table1
CROSS JOIN table2;
Cross Join을 Implicit(암시적) 방식으로 사용하는 방법
SELECT * FROM table1, table2;
COALESCE
주로 NULL 값을 기본값 또는 다른 값으로 대체할 때 사용
SELECT COALESCE(column1, column2) AS 'Column'
FROM table;
주어진 값들 중에서 NULL이 아닌 첫 번째 값을 찾아 반환
SELECT COALESCE(NULL, NULL, 10, 20, NULL) AS 'Column';
모든 인수가 NULL인 경우 COALESCE 함수는 NULL을 반환한다.
728x90
SMALL
'Database & Data > 기초지식' 카테고리의 다른 글
개념적, 논리적, 물리적 모델(이해 위주) (0) | 2023.05.26 |
---|---|
고급 SQL 다루기 (0) | 2023.05.12 |
RedShift 및 SQL 다루기 (0) | 2023.05.09 |
관계형 데이터베이스와 SQL 소개 (0) | 2023.05.08 |
Postgresql과 Mysql 중 선택시 고려해야 할 점 (0) | 2023.04.09 |