반응형
SET
두 select 문을 통해 얻어온 결과를 집합 연산을 통해 하나의 결과로 만드는 것을 set이라고 부릅니다.
합집합, 교집합, 차집합 등 집합 연산을 할 수 있습니다.
집합 연산을 하기 위해서는 두 select문을 통해 가져오는 컬럼이 같아야 합니다.
합집합
두 select 문의 결과를 모두 포함하는 최종 결과를 반환합니다.
UNION
중복되는 데이터를 하나만 가져옵니다.
UNION ALL
중복되는 데이터도 모두 가져옵니다.
교집합
두 select 문의 결과 중 중복되는 부분만 가져옵니다.
교집합은 join 문을 사용합니다.
차집합
두 select 문에서 중복되는 부분을 제거하고 첫 번째 select 문 결과만 가져옵니다.
차집합은 서브 쿼리를 이용합니다.
예제
select emp_no from titles where title='Senior Staff'
union
select emp_no from titles where title="Senior";
합집합 조회 결과는 다음과 같습니다. 중복되는 데이터들을 포함하여 가져오는 것을 알 수 있습니다.
select a1.emp_no
from titles a1, titles a2
where a1.emp_no = a2.emp_no and a1.title = "Senior Staff" and a2.title='Staff';
교집합 조회 결과는 다음과 같습니다. 중복되는 데이터들만 가져오는 것을 알 수 있습니다.
select emp_no
from titles
where title='Staff' and emp_no not in
(select emp_no from titles where title='Senior Staff');
차집합 조회 결과는 다음과 같습니다. MySQL에서는 오라클과 달리 차집합 연산을 제공하지 않으므로, 서브 쿼리를 활용해 작성해야한다고 합니다.
반응형
'SW > MySQL' 카테고리의 다른 글
MySQL : 데이터베이스, 테이블 생성 : 방법, 예제, 팁 (0) | 2020.01.26 |
---|---|
MySQL : 서브쿼리 : 조건문 : 사용방법, 예제 (0) | 2020.01.25 |
MySQL : 그룹함수 : 카운트, 총합, 평균, 최대값, 최저값 : 예제, 사용방법 (0) | 2020.01.23 |
MySQL : 날짜 함수 : 형식, 날짜, 연산 방법 : 개요, 예제, 방법 (0) | 2020.01.22 |
MySQL : 문자열 함수 : 합치기, 삽입, 교체, 찾기, 공백 제거, 소문자, 대문자, 거꾸로 : 사용방법, 예제 (0) | 2020.01.21 |