최보름달

[SQL] STANDARD SQL, 집합 연산자 본문

문송한 회사생활/SQL 공부

[SQL] STANDARD SQL, 집합 연산자

PieMoon 2020. 8. 15. 12:56

STANDARD SQL

벤더별로 기능이 다른 것을 표준을 제정하여 기준으로 삼고 있다. 

ANSI/ISO 표준 SQL 기능은 다음 내용을 포함한다. 

 

  • SRANDARD JOIN 기능 추가 (CROSS, OUTER JOIN 등 새로운 FROM절 JOIN 기능 들)
  • SCALAR SUBQUERY, TOP-N QUERY 등 새로운 SUBQUERY 기능들
  • ROLLUP, CUBE, GROUPING SETS 등 새로운 리포팅 기능
  • WINDOW FUNCTION 같은 새로운 분석 기능들

 

일반 집합 연산자

일반 집합 연산자

현재 사용하는 SQL의 많은 기능은 관계형 데이터베이스 이론을 수립한 E.F Codd박사의 논문에 언급이 되어 있다. 

당시 논문에 기재된 집합 연산자를 현재 SQL과 비교하면 다음과 같디ㅏ. 

 

일반 집합 연산자 -> 현재 SQL 연산자 

UNION -> UNION

INTERSECTION -> INTERSECT

DIFFERENCE -> EXCEPT (오라클은 MINUS)

PRODUCT -> CROSS JOIN

으로 구현되어 있다. 

 

UNION

합집합을 확인할 때 사용하는 연산자.

이후 UNION ALL 기능이 추가되었는데, 공통집합을 중복해서 보여주기 때문에 정렬 작업이 일어나지 않아 속도 측면의 장점이 있다.

UNION과 UNION ALL 의 출력 결과가 같다면 UNION ALL 을 사용하라.

 

INTERSECTION

교집합을 찾는 연산자

 

DIFFERENCE

차집합을 찾는 연산자.

공통집합을 제외한 부분.

대다수 벤더는 EXCEPT, 오라클은 MINUS 용어를 사용한다. 

 

PRODUCT

곱집합.

JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합을 말한다.

양쪽 집합의 M * N 건의 데이터 조합이 발생한다.

 

 

순수 관계 연산자

순수 관계 연산자

SELECT -> WHERE 절

PROJECT -> SELECT

(NATURAL) JOIN -> 다양한 JOIN 기능으로 구현되었음.

DIVIDE -> 현재 사용하지 않음.

 

 

 

 

kdata 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다.