Join이란?
두개 이상의 데이터를 연결하여 데이터를 검색해야 하는 경우가 있을 것이다. 이때 공통된 키 값을 기반으로 데이터 테이블들을 묶어 주어야 할 것인데, 이 때 Join을 사용하게 된다.
Inner Join vs Outer Join
- Inner Join : Join 조건에서 값이 일치하는 행만 반환한다.
- Outer Join : Join 조건에서 한쪽 값만 없더라도 행을 반환한다.
Inner Join
Inner Join은 두 테이블 양쪽에 모두 존재하는 레코드를 반환한다.
즉, 교집합의 연산과 동일하다.
구조
SELECT TABLE1.속성명, TABLE2.속성명...
FROM TABLE1 INNER JOIN TABLE2
ON TABLE1.속성명 = TABLE2.속성명
..
Left Join
Left Join의 경우, 왼쪽 테이블의 모든 레코드와, 오른쪽 테이블의 일치하는 레코드를 반환하되, 오른쪽에 일치하는 레코드가 없을 경우 오른쪽의 결과는 NULL로 나오게 된다.
즉, 교집합과 차집합의 합집합 형태를 띄우게 된다.
구조
SELECT TABLE1.속성명, TABLE2.속성명...
FROM TABLE1 LEFT JOIN TABLE2
ON TABLE1.속성명 = TABLE2.속성명
..
Right Join
Right Join의 경우는, Left Join과의 방향이 반대가 된다.
Cross Join
이는 곱집합의 형태로 데이터를 얻게 된다.
ex) A = {a, b} B = {1, 2, 3}
A CROSS JOIN B는 (a, 1), (a, 2), (a, 3), (b, 1), (b, 2), (b, 3)을 얻게 된다.
SELECT TABLE1.속성명, TABLE2.속성명...
FROM TABLE1 CROSS JOIN TABLE2
...
실질적 사용 예시는, 여러 문제를 통해 정리하고자 한다.
'SQL' 카테고리의 다른 글
[DB] Key 정리 (0) | 2021.08.18 |
---|---|
[SQL] Having 절 (0) | 2021.07.05 |
[SQL] HackerRank - Ollivander's Inventory (0) | 2021.06.08 |
[SQL] HackerRank - The Report (0) | 2021.06.08 |
[SQL] HackerRank - Population Census (0) | 2021.06.04 |