1. 집합연산자란?
개념
두개 이상 테이블에서 서로 조인을 사용하지 않고 연관된 데이터를 조회하는 방법
집한연산자는 여러 개의 질의의 결과를 연결하여 하나로 결합하는 방식을 사용(기존의 JOIN은 FROM 절에 검색하고자 하는 테이블을 나열하고, WHERE절에 조건을 기술)
집합 연산자를 사용하는 경우
서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합칠 때
동일 테이블에서 서로 다른 질의를 수행하여 결과를 합칠 때
튜닝 관점에서 실행 계획을 분리하고자 하는 목적일 때
집합 연산자를 사용하기 위한 제약조건
SELECT 절의 칼럼 수가 동일해야 한다.
SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환 가능해야 한다.
제약조건을 만족하지 않을 경우, 데이터베이스가 오류를 반환한다.
2. 집합연산자의 종류
UNION
여러 개의 SQL 문의 결과에 대한 합집합
결과에서 모든 중복된 행은 하나의 행으로 만듬
명령어: SELECT 칼럼명 FROM 테이블명 A WHERE 조건절 UNION SELECT 테이블명 WHERE 조건절;
UNION ALL
여러 개의 SQL 결과에 대한 합집합. 중복된 행도 그대로 결과 표시
단순히 결과만 합쳐놓은 것.
일반적으로 결과가 상호 배타적일 때 사용
개별 SQL문의 결과가 중복되지 않은 경우 UNION과 결과가 동일
명령어: SELECT 칼럼명 FROM 테이블명 A WHERE 조건절 UNION ALL SELECT 테이블명 WHERE 조건절;
INSERT
여러 개의 SQL문의 결과에 대한 교집합
중복된 행은 하나의 행으로 만듬
명령어: SELECT 칼럼명 FROM 테이블명 A WHERE 조건절MS INTERSECT SELECT 테이블명 WHERE 조건절;
EXCEPT
앞의 SQL문의 결과에서 뒤의 SQL문의 결과에 대한 차집합
중복된 행은 하나의 행으로 만듬
일부 데이터베이스는 MINUS를 사용
명령어: SELECT 칼럼명 FROM 테이블명 A WHERE 조건절 MINUS SELECT 테이블명 WHERE 조건절;
'Study > SQLD' 카테고리의 다른 글
2-2장 SQL 활용 - 4절 서브쿼리 (0) | 2022.06.30 |
---|---|
2-2장 SQL 활용 - 3절 계층형 질의와 셀프 조인 (0) | 2022.06.30 |
2-2장 SQL 활용 - 1절 표준 조인 (2) | 2022.06.28 |
2-1장 SQL 기본 - 9절 조인(JOIN) (2) | 2022.06.28 |
2-1장 SQL 기본 - 8절 ORDER BY 절 (0) | 2022.06.27 |