본문 바로가기
개발/데이터베이스

(데이터 베이스) 집합연산 (Union, Union ALL, Minus, Intersect)

by kakk789 2022. 4. 30.

1. Union

  • 합집합의 개념으로, 중복을 제거한 결과의 합을 검색하게 한다.
  • 두 SELECT 문의 컬럼의 개수와 타입이 일치 해야 한다.
  • 검색의 결과는 앞 SELECT 문에 의해 결정 된다.
SELECT 1 .... UNION SELECT 2 ....

2. UNION ALL

  • 중복을 포함한 결과의 합을 검색하게 한다

3. Minus

  • 차집합의 개념으로, 첫번째 검색 결과에서 두번째 검색 검과를 제외(빼고) 나머지를 검색한다.
//1번 쿼리문, 모든 고객의 이름
SELECT NAME FROM customer;
// 마이너스
minus
// 2번 쿼리문, 주문한 고객의 이름
SELECT NAME FROM CUSTOMER where custid IN (SELECT distinct custid from orders);

== 결과== 
1번 쿼리문에서 2번 쿼리문을 뺀 결과는 = 주문하지 않은 고객의 이름이 출력됨

4. Intersect

  • 교집합의 개념으로 양쪽에 모두 포함된 행을 검색한다

5. EXISTS

  • 서브쿼리의 결과가 존재하면 메인쿼리를 실행하고 존재하지 않으면 메인쿼리를 실행하지 않음
  • 하위 쿼리가 '상관 서브쿼리 형식'으로 와야함
select 컬럼1, 컬럼2 from 테이블1
where exists
( select 컬럼3 from 테이블 2 where 테이블1.컬럼1 = 테이블2.컬럼4)

 

반응형

댓글