집합 연산

집합연산

이 문서에서는 집합연산의 개념과 이용방법에 대해서 다룬다.

집합연산이란

집합연산은 말 그대로 서로다른 집합 간의 연산을 말한다. 예를 들어 철수와 영희가 각각 좋아하는 색상이 다음과 같다고 가정해본다.

  • 철수 : 빨강, 파랑, 초록, 노랑

  • 영희 : 검정, 보라, 노랑, 빨강, 분홍

이를 집합으로 표현하면 다음 그림과 같다.

색상들은 다음과 같이 분류될 수 있다.

  • 철수와 영희가 모두 좋아하는 색 : 빨강, 노랑

  • 철수만 좋아하는 색 : 파랑, 초록

  • 영희만 좋아하는 색 : 검정, 분홍, 보라

  • 철수와 영희 둘 중 한명이라도 좋아하는 색 : 파랑, 초록, 빨강, 노랑, 검정, 분홍, 보라

집합연산 용어로 설명하면 다음과 같다.

  • 합집합 : 철수와 영희 둘 중 한명이라도 좋아하는 색, 철수∪영희

  • 교집합 : 철수와 영희 둘 다 좋아하는 색, 철수∩영희

  • 차집합 : 철수만 좋아하는 색(철수-영희), 영희만 좋아하는 색(영희-철수)

데이터 준비

table favorite

name

color

철수

빨강

철수

파랑

철수

초록

철수

노랑

영희

검정

영희

보라

영희

노랑

영희

빨강

영희

분홍

합집합(UNION)

합집합은 다음 두 가지로 구분한다

  • UNION ALL : 중복을 허용하는 합집합

  • UNION : 중복을 제거한 합집합

color

빨강

파랑

초록

노랑

검정

보라

노랑

빨강

분홍

union을 사용하면 중복을 제거한 합집합을 확인할 수 있다.

color

검정

노랑

보라

분홍

빨강

초록

파랑

union은 union distinct와 같은 의미라는 것을 결과로 확인할 수 있다.

교집합

교집합은 intersect 키워드를 사용한다.

color

노랑

빨강

차집합

차집합은 minus 키워드를 사용한다.

철수 - 영희

color

초록

파랑

영희 - 철수

color

검정

보라

분홍

Last updated