집합 연산
Last updated
Last updated
이 문서에서는 집합연산의 개념과 이용방법에 대해서 다룬다.
집합연산은 말 그대로 서로다른 집합 간의 연산을 말한다. 예를 들어 철수와 영희가 각각 좋아하는 색상이 다음과 같다고 가정해본다.
철수 : 빨강, 파랑, 초록, 노랑
영희 : 검정, 보라, 노랑, 빨강, 분홍
이를 집합으로 표현하면 다음 그림과 같다.
색상들은 다음과 같이 분류될 수 있다.
철수와 영희가 모두 좋아하는 색 : 빨강, 노랑
철수만 좋아하는 색 : 파랑, 초록
영희만 좋아하는 색 : 검정, 분홍, 보라
철수와 영희 둘 중 한명이라도 좋아하는 색 : 파랑, 초록, 빨강, 노랑, 검정, 분홍, 보라
집합연산 용어로 설명하면 다음과 같다.
합집합 : 철수와 영희 둘 중 한명이라도 좋아하는 색, 철수∪영희
교집합 : 철수와 영희 둘 다 좋아하는 색, 철수∩영희
차집합 : 철수만 좋아하는 색(철수-영희), 영희만 좋아하는 색(영희-철수)
table favorite
name | color |
철수 | 빨강 |
철수 | 파랑 |
철수 | 초록 |
철수 | 노랑 |
영희 | 검정 |
영희 | 보라 |
영희 | 노랑 |
영희 | 빨강 |
영희 | 분홍 |
합집합은 다음 두 가지로 구분한다
UNION ALL : 중복을 허용하는 합집합
UNION : 중복을 제거한 합집합
color |
빨강 |
파랑 |
초록 |
노랑 |
검정 |
보라 |
노랑 |
빨강 |
분홍 |
union을 사용하면 중복을 제거한 합집합을 확인할 수 있다.
color |
검정 |
노랑 |
보라 |
분홍 |
빨강 |
초록 |
파랑 |
union은 union distinct와 같은 의미라는 것을 결과로 확인할 수 있다.
교집합은 intersect
키워드를 사용한다.
color |
노랑 |
빨강 |
차집합은 minus
키워드를 사용한다.
color |
초록 |
파랑 |
color |
검정 |
보라 |
분홍 |