티스토리 뷰
집합 연산자란?
-SQL에서 집합 연산자란 여러 쿼리의 결과를 합치는 용도로 사용됩니다. 대표적인 집합 연산자로는 UNION , UNION ALL , INTERSECT , EXCEPT 등이 있으며, 이를 활용하여 여러 테이블에서 조인을 사용하지않고 질의 결과를 합칠 수 있습니다.
UNION
-여러개의 'SELECT' 문의 결과를 합칠 때 사용됩니다.합치는 테이블은 모두 같은 수의 컬럼을 가져야하며, 데이터 타입이 일치해야 합니다. 또한 해당 UNION의 결과에서 중복된 레코드는 제거합니다.
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
UNION ALL
-UNION과 같이 여러 개의 'SELECT'문의 결과를 합칠 때 사용되나, UNION과는 다르게 중복된 레코드는 제거하지않아 속도가 더욱 빠릅니다.
SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;
INTERSECT
-여러개의 'SELECT'문의 교집합을 반환하는 연산자로, 여러 'SELECT'문의 결과에서 공통적으로 나오는 레코드를 반환합니다.
SELECT column1, column2, ...
FROM table1
INTERSECT
SELECT column1, column2, ...
FROM table2;
EXCEPT
첫번째 'SELECT'문의 결과에서 두 번째 'SELECT'문의 결과를 제외한 레코드만을 반환합니다.
즉, 첫번째 결과 - 두번째 결과를 하는 차집합 연산입니다.
오라클에서는 MINUS로 구현되어있습니다.)
SELECT column1, column2, ...
FROM table1
EXCEPT
SELECT column1, column2, ...
FROM table2;