UNION
특징
- 여러 개의 테이블을 세로로 합치는 개념이다(추가적인 레코드 출력).
- UNION하는 두 테이블의 컬럼명이 다른 경우에는 첫 번째 테이블의 컬럼명으로 출력된다.
- 중복되는 데이터는 자동으로 DISTINCT해서 출력한다(UNION ALL 사용 시 전부 출력).
- LIMIT을 걸면 UNION을 통해 테이블을 합친 후에 수행한다. 괄호로 SELECT문을 묶는다면 해당 단일 쿼리 안에서 LIMIT을 수행하도록 할 수 있다.
JOIN
특징
- 여러 개의 테이블을 가로로 합치는 개념이다(레코드 당 추가적인 정보).
- 각 테이블에 같은 컬럼이 있을 때만 JOIN을 할 수 있으며, 그 컬럼이 '붙이기 위한 키워드'가 된다.
- JOIN은 INNER JOIN을 기본으로 사용하며, 일치하지 않는 값은 출력하지 않는다(곱집합).
- LEFT OUTER JOIN (LEFT JOIN) = 왼쪽 테이블을 우선시하는 합집합.
- RIGHT OUTER JOIN (RIGHT JOIN) = 오른쪽 테이블을 우선시하는 합집합.
- CROSS JOIN = 두 테이블의 레코드들의 모든 조합 (모든 경우의 수)
- INNER JOIN과 OUTER JOIN은 결합 조건을 ON 구에 적어야 한다. 비교 연산자 뿐만 아니라 논리 연산자 등 다양한 연산자로 조건을 설정할 수 있다.
- 컬럼명 간 등호를 사용하여 결합 조건을 설정할 경우 ON 대신 USING 구를 사용할 수도 있다.
'IT > Database' 카테고리의 다른 글
[NoSQL] Redis Commands (0) | 2021.10.08 |
---|---|
[RDBMS] Sub Query, UNION, JOIN Example (0) | 2021.10.07 |
[RDBMS] 서브 쿼리 (0) | 2021.10.06 |
[RDBMS] CAST 함수 (0) | 2021.10.06 |
[RDBMS] IFNULL, NULLIF 함수 (0) | 2021.10.06 |