티스토리 뷰

SQL/SQLD 이론

[SQLD] SQL 활용 : 2절 집합 연산자

개발자 김챠챠 2025. 3. 7. 18:02

2절 집합연산자


집합 연산자

조인 없이 여러 테이블의 관련 데이터를 조회하는 연산자(SQL 결과를 결합)

연산을 수행하는 두 테이블은 같은 컬럼 개수와 데이터만 가능해야 함

  • 데이터 타입의 암시적 변환이 가능한 경우나, NULL을 사용하면 컬럼 갯수나 데이터가 달라도 가능

UNION

SELECT 컬럼명 FROM 테이블명 A WHERE 조건절
UNION
SELECT 컬럼명 FROM 테이블명 B WHERE 조건절;

두개의 SELECT 행에서 모든 데이터를 반환하는 합집합

자동으로 중복을 제거하며, 결과가 오름차순으로 자동 정렬됨

UNION ALL

SELECT 컬럼명 FROM 테이블명 A WHERE 조건절
UNION ALL
SELECT 컬럼명 FROM 테이블명 B WHERE 조건절;

중복된 행도 전부 출력하는 합집합으로, 자동 정렬하지 않음

성능은 UNION에 비해 UNION ALL이 빠름

 

INTERSECT

SELECT 컬럼명 FROM 테이블명 A WHERE 조건절
INTERSECT
SELECT 컬럼명 FROM 테이블명 B WHERE 조건절;

교집합과 같으며, 두개의 SELECT 행에서 공통된 행을 반환

자동으로 중복을  제거하며, 결과는 오름차순으로 자동 정렬됨

 

MINUS, EXCEPT

SELECT 컬럼명 FROM 테이블명 A WHERE 조건절
MINUS | EXCEPT
SELECT 컬럼명 FROM 테이블명 B WHERE 조건절;

 

두 SELECT 문에서 한쪽만 존재하는 행을 반환하며, 차집합을 의미

Oracle에서는 MINUS, SQL Server에서는 EXCEPT를 사용

 

최종 수정일 : 2025/03/07

틀린 사항이 있다면 댓글로 알려주시면 감사하겠습니다.

 
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함