2025-10-10
오늘 배운 것
SubQuery & 집합 연산
SubQuery란?
- 하나의 SQL문에 포함된 또 다른 SQL문
- 내부 쿼리 결과를 외부 쿼리에서 활용
- 특징
- 괄호
() 로 감싸서 표현
- 세미콜론
; 없음
- 일부 절(ORDER BY 등)에서 제한 있음
SubQuery 유형
- 단일 행 서브쿼리
- 결과가 하나의 행 → 단일 비교 연산자 사용(=, >, <, >=, <=, <>)
- 다중 행 서브쿼리
- 결과가 여러 행 → IN, ANY, ALL, EXISTS 사용
- 상호 연관 서브쿼리
- 다중 열 서브쿼리
- 여러 열을 반환, 조건 비교 시 열을 쌍으로 사용
- 스칼라 서브쿼리
- 단일 행·단일 열 → 값 하나 반환 (없으면 NULL)
- 인라인 뷰
- FROM 절에 사용되는 서브쿼리
- 결과를 가상 테이블처럼 사용
- 반드시 별칭 필요, 일회성 뷰
다중 행 서브쿼리 연산자
- ANY
= ANY → IN 과 동일
> ANY → 최소값보다 크면 참
< ANY → 최대값보다 작으면 참
- ALL
> ALL → 최대값보다 크면 참
< ALL → 최소값보다 작으면 참
- EXISTS
- 서브쿼리 결과가 존재하면 참
- 조건 충족 시 즉시 참 반환
- SEMI JOIN 과 유사
SubQuery 사용 가능한 위치
- SELECT, FROM, WHERE, HAVING, ORDER BY 절
- UPDATE의 SET 절
- INSERT의 VALUES 절 및 대체
- CREATE TABLE 문
집합 연산
- 두 SQL 결과를 집합으로 보고 연산
- 조건
- 컬럼 개수 동일
- 컬럼 데이터 타입 호환
- 컬럼명은 첫 번째 쿼리 기준
- 종류
UNION : 합집합 (중복 제거)
UNION ALL : 합집합 (중복 포함)
INTERSECT : 교집합
MINUS (또는 EXCEPT) : 차집합