티스토리 뷰

자격증/SQLD

SQLD - SQL 활용 [집합 연산자]

나는연어다 2017. 8. 14. 13:35

1.   집합연산자(SET_OPERATOR)

-       연관된 데이터를 조회하는 방법 중 하나이다.

-       여러 개의 질의의 결과를 연결하여 하나로 결합하는 방식 사용
(
, 집합 연산자는 2개 이상의 질의 결과를 하나의 결과로 만들어 준다.)

 

n  일반적으로 집합 연산자를 사용하는 상황

- 서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합치고자 할 때 사용한다.
-
동일 테이블에서 서로 다른 질의를 수행하여 결과를 합치고자 할 때 사용한다.

- 이외에도 튜닝관점에서 실행계획을 분리하고자 하는 목적으로도 사용한다.

 

n  집합 연산자를 사용하기 위한 제약조건 (조건을 지키지 않을 시 데이터베이스가 오류 반환)

- SELECT 절의 칼럼 수가 동일

- SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환 가능 (반드시 동일한 데이터 타입일 필요는 없다.)

집합 연산자

연산자의 의미

UNION

여러 개의 SQL문의 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의 행으로 만든다.

UNION ALL

여러 개의 SQL문의 결과에 대한 합집합으로 중복된 행도 그대로 결과로 표시된다. , 단순히 결과만 합쳐놓은 것이다. 일반적으로 여러 질의 결과가 상호 배타적인(Exclusive)일 때 많이 사용한다. 개별 SQL문의 결과가 서로 중복되지 않는 경우, UNION과 결과가 동일하다. (결과의 정렬 순서에는 차이가 있을 수 있다.)

INTERSECT

여러 개의 SQL문의 결과에 대한 교집합이다. 중복된 행은 하나의 행으로 만든다.

EXCEPT

앞의 SQL문의 결과에서 뒤의 SQL문의 결과에 대한 차집합이다. 중복된 행은 하나의 행으로 만든다. (Oracle에서는 MINUS를 사용한다.)


 

l  문법

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문이라도 이용가능하다.

-       집합 연산자는 여러 개의 SELECT문을 연결하는 것에 지나지 않는다.

-       ORDER BY는 집합 연산을 적용한 최종 결과에 대한 정렬 처리이므로 가장 마지막 줄에 한번만 기술한다.

반응형
LIST
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/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
글 보관함