집합 연산자(SET OPERATOR)

song4·2023년 8월 8일
0

SQLD - SQL 활용

목록 보기
2/8
post-thumbnail

두 개 이상의 테이블에서 조인을 사용하지 않고
연관된 데이터를 조회하는 방법 중에 또 다른 방법이 있는데
그 방법이 바로 집합 연산자(Set Operator)를 사용하는 방법이다.

집합 연산자는 여러 개의 질의의 결과를 연결하여
하나로 결합하는 방식을 사용한다.

일반적으로 집합 연산자를 사용하는 상황은
서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을
하나의 결과로 합치고자 할 때와
동일 테이블에서 서로 다른 질의를 수행하여
결과를 합치고자 할 때 사용할 수 있다.
이외에도 튜닝관점에서 실행계획을 분리하고자 하는 목적으로도 사용할 수 있다.
집합 연산자의 종류집합 연산자의 연산

-- 집합 연산자를 사용하여 만들어지는 SQL문의 형태
SELECT 
	COLUMN1,
    COLUMN2,
    …
FROM TABLE
SET OPERATOR	-- 집합 연산자
SELECT 
	COLUMN1,
    COLUMN2,
    …
FROM TABLE
ORDER BY 1, 2 [ASC | DESC];

집합 연산자는 사용상의 제약조건을 만족한다면 어떤 형태의 SELECT문이라도 이용할 수 있다.
집합 연산자는 여러 개의 SELECT문을 연결하는 것에 지나지 않는다.
ORDER BY는 집합 연산을 적용한 최종 결과에 대한 정렬 처리이므로 가장 마지막 줄에 한번만 기술한다.

집합 연산자를 연습하기 위한 질문

  1. K-리그 소속 선수들 중에서 소속이 삼성블루윙즈팀인 선수들과 전남드레곤즈팀인 선수들에 대한 내용을 모두보고 싶다.
  2. K-리그 소속 선수들 중에서 소속이 삼성블루윙즈팀인 선수들과 포지션이 골키퍼(GK)인 선수들을 모두 보고 싶다.
  3. K-리그 소속 선수들에 대한 정보 중에서 포지션별 평균키와 팀별 평균키를 알고 싶다.
  4. K-리그 소속 선수를 중에서 소속이 삼성블루윙즈팀이면서 포지션이 미드필더(MF)가 아닌 선수들의 정보를 보고 싶다.
  5. K-리그 소속 선수들 중에서 소속이 삼성블루윙즈팀이면서 포지션이 골키퍼(GK)인 선수들의 정보를 보고 싶다.

답해보기

  1. K-리그 소속 선수들 중에서 소속이 삼성블루윙즈팀인 선수들의 집합과 K-리그 소속 선수들 중에서 소속이 전남드레곤즈팀인 선수들의 집합을 UNION | UNION ALL
  2. K-리그 소속 선수들 중에서 소속이 삼성블루윙즈팀인 선수들의 집합과 K-리그 소속 선수들 중에서 포지션이 골키퍼(GK)인 선수들의 집합을 UNION | UNION ALL
  3. K-리그 소속 선수들 중에서 포지션별 평균키 집합과 팀별 평균키 집합을 UNION ALL
  4. K-리그 소속 선수들 중에서 소속이 삼성블루윙즈팀인 선수들의 집합과 K-리그 소속 선수들 중에서 포지션이 미드필더(MF)인 선수들의 집합을 EXCEPT
  5. K-리그 소속 선수들 중에서 소속이 삼성블루윙즈팀인 선수들의 집합과 K-리그 소속 선수들 중에서 포지션이 골키퍼(GK)인 선수들의 집합을 INTERSECT

0개의 댓글

관련 채용 정보