
162
러닝 SQL
결과를 보면 집합 연산자의 위치에 따라 복합 쿼리를 처리하는 방식에 분명한 차이가 있습니
다. 세 개 이상의 쿼리를 포함하는 복합 쿼리는 보통 위에서 아래의 순서대로 실행되지만, 다음
과 같은 예외 사항이 있으니 주의해야 합니다.
●
ANSI
SQL
사양에서는
intersect
연산자가 다른 집합 연산자보다 우선 순위를 가집니다.
●
여러 쿼리를 괄호로 묶어 쿼리가 결합되는 순서를 지정할 수 있습니다.
MySQL
은 아직 복합 쿼리에서 괄호를 허용하지 않지만, 다른 데이터베이스 서버를 사용할 경
우에는 다음과 같이 복합 쿼리를 괄호로 묶어서 처리 순서를 재정의할 수 있습니다.
SELECT a.first_name, a.last_name
FROM actor a
WHERE a.first_name LIKE 'J%' AND a.last_name LIKE 'D%'
UNION
(SELECT a.first_name, a.last_name
FROM actor a
WHERE a.first_name LIKE 'M%' AND a.last_name LIKE 'T%'
UNION ALL
SELECT c.first_name, c.last_name
FROM customer c
WHERE c.first_name LIKE 'J%' AND c.last_name LIKE 'D%'