개발블로그

[SQL] 집합연산 본문

STUDY/SQL

[SQL] 집합연산

devmel 2026. 7. 30. 10:48
Contents 접기
 

개념

 

컬럼 구성이 같은 여러 SELECT문의 결과 행을 하나의 결과로 합치거나 비교하는 연산

 


 
 

문법

SELECT
    컬럼1 AS 결과_컬럼1,
    컬럼2 AS 결과_컬럼2,
    ...
FROM 첫_번째_테이블
[WHERE 조건]

집합_연산자

SELECT
    컬럼1,
    컬럼2,
    ...
FROM 두_번째_테이블
[WHERE 조건]

[ORDER BY 결과_컬럼1] -- 전체 정렬시, 마지막 SELECT문에 ORDER BY를 한 번 작성 
;

-- 최종 결과의 컬럼명 => 일반적으로 첫 번째 SELECT문의 컬럼명이나 별칭을 사용함
-- 결과_컬럼1
-- 결과_컬럼2

 


 

종류

연산자 결과
UNION 두 결과를 합치고 중복 행 제거
UNION ALL 두 결과를 합치고 중복 행 유지
INTERSECT 두 결과에 공통으로 존재하는 행
EXCEPT 첫 번째 결과에만 존재하는 행

 


 

사용조건

각 SELECT문은 반환하는 결과 구조가 서로 맞아야 함

 

  • 컬럼 개수가 맞아야 함
  • 컬럼 순서가 맞아야 함 : 컬럼 이름이 같은 필요는 없지만, 각 위치의 의미와 자료형은 맞춰야 함
  • 자료형이 호환되어야 함 : 같은 위치에 있는 컬럼은 서로 비교하거나 결합할 수 있어야 함
    • 필요하다면 자료형 직접 변환 : CAST(컬럼 AS 변환할_자료형) AS 결과컬럼

 

'STUDY > SQL' 카테고리의 다른 글

[SQL] CTE (Common Table Expression)  (0) 2026.07.31
[SQL] SQL 표현식  (0) 2026.07.30
[SQL] 테이블 생성과 변경  (0) 2026.07.30
[SQL] 데이터 추가·수정·삭제  (1) 2026.07.29
[SQL] 서브쿼리  (0) 2026.07.29