집합연산자와 서브쿼리
- SQL에는 집합 개념을 활용한 UNION(합집합), UNION ALL(중복 포함 합집합) INTERSECT(교집합), EXCEPT(차집합) 연산자가 존재한다.
UNION
- 합집합 연산
UnionAll
- 중복 포함 합집합
Intersect
- 교집합 연산, PostgreSQL에서만 활용가능하다.
- MySQL에서는 INTERSECT 구문은 작동하지 않는다.
- 개념을 활용하기 위해 JOIN 연산을 활용한다.
- 모든 컬럼을 key로 INNER JOIN을 실행하면 간단히 해결할 수 있다.
Except
- 차집합 연산, PostgreSQL에서만 활용가능하다.
- Oracle에서는 EXCEPT 대신 MINUS 연산자가 사용된다.
- 개념을 활용하기 위해 JOIN 연산을 활용한다.
- LEFT(RIGHT) JOIN을 실행하면 한쪽 테이블에 존재하지 않는 ROW에 대해 null 값이 생긴다. 이 NULL 값만을 WHERE 절에서 포함하면 된다.
*집합연산자를 사용하는것보다 JOIN을 이용하는것이 더 직관적이고 편하다.
'SQL' 카테고리의 다른 글
[SQL] JOIN 과 Subquery (0) | 2022.06.30 |
---|---|
[SQL] 그룹화, 그룹 조건, 정렬 및 출력갯수 - Group by, Having, Order by, Limit (0) | 2022.06.30 |
[SQL] 숫자 표시 형식 정하기 - Format, Round, Truncate (0) | 2022.06.30 |
[SQL] 기본 사용 - USE, SELECT, WHERE 및 기본 연산자 (0) | 2022.06.11 |
[SQL] SQL 기본 개념 (0) | 2022.06.11 |