조인을 사용하지 않고 연관된 데이터를 조회하는 방법
여러개의 질의의 결과를 연결하여 하나로 결합하는 방식, 2개이상의 질의 결과를 하나로 만들어줌
사용 목적
- 서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합치고자 할 때
- 동일 테이블에서 서로 다른 질의를 수행하여 결과를 합치고자 할 때
- 튜닝관점에서 실행계획을 분리하고자 하는 목적
제약 조건
- SELECT 절의 칼럼수가 동일
- 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환 가능해야 함 (동일한 데이터 타입일 필요 없음)
집합 연산자의 종류
집합 연산자 |
연산자의 의미 |
UNION |
여러 개의 SQL문의 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의 행으로 만듬 |
UNION ALL |
여러 개의 SQL문의 결과에 대한 합집합으로 중복된 행도 그래도 결과에 출력, 상호 배타적일때 사용 |
INTERSECT |
여러 개의 SQL문의 결과에 대한 교집합으로 중복된 행은 하나의 행으로 만듬 |
EXCEPT |
앞 SQL문의 결과에서 뒤 SQL 문의 결과에 대한 차집합 중복된 행은 하나의 행으로 만듬 ORACLE은 MINUS 로 사용 |
SELECT 칼럼명1, 칼럼명2, ...
FROM 테이블명1
[WHERE 조건식 ]
[[GROUP BY 칼럼(Column)이나 표현식 [HAVING 그룹조건식 ] ]
집합 연산자
SELECT 칼럼명1, 칼럼명2, ...
FROM 테이블명2
[WHERE 조건식 ]
[[GROUP BY 칼럼(Column)이나 표현식 [HAVING 그룹조건식 ] ]
[ORDER BY 1, 2 [ASC또는 DESC ] ;
집합연산자는 여러개의 SELECT 문을 연결하는 것에 지나지 않으나
ORDER BY 문은 최종 경과에 대한 정렬으로 마지막 줄에 한번만 기술
UNION 연산자 사용하여 IN연산자와 OR연산자는 정렬 순서만 다를 뿐 같은 결과값을 냄
그룹함수도 집합연산자 사용이 가능함, GUBUN코드를 추가하여 사용 가능
'자격증 공방 > SQLD' 카테고리의 다른 글
제 4-4절 서브쿼리 (0) | 2018.07.11 |
---|---|
제 4-3절 계층형 질의와 셀프 조인 (0) | 2018.07.11 |
제 4-1절 표준 조인 (0) | 2018.07.11 |
제 3-9절 조인(JOIN) (0) | 2018.07.07 |
제 3-8절 ORDER BY절 (0) | 2018.07.07 |