안녕하세요!!
이번에 포스팅할 내용은 SQL UNION 구문 입니다.
UNION 은 두 개 이상의 select 문을 결합하는데 사용합니다.
두 개 이상의 select 문을 결합할때 주의해야 할 점은 불러오는 칼럼의 개수가 서로 같아야 한다는 것입니다.
그리고 union 의 구문은 union 과 union all 두 가지 방식이 있습니다. 두 구문의 차이점은 아래와 같습니다.
아래와 같은 두 개의 테이블이 있다고 가정합니다.
TABLE1 TABLE2
----------------- -----------------
field1 field1
----------------- -----------------
1 5
2 3
3 1
----------------- -----------------
이 때...
SELECT field1 FROM TABLE1
UNION ALL
SELECT field1 FROM TABLE2;
하면 결과는 아래와 같이 나옵니다.
-----------------
FLD1
-----------------
1
2
3
5
3
1
-----------------
자세히 보면 두 쿼리의 결과를 단순히 합친 것이라 보면 됩니다.
그런데
SELECT field1 FROM TABLE1
UNION
SELECT field1 FROM TABLE2;
하면 결과는 아래와 같이 나옵니다.
-----------------
FLD1
-----------------
1
2
3
5
-----------------
자세히 살펴보면 두 테이블의 결과를 합치지만 중복된 값을 제외하죠.
이렇게 중복을 제거하기 위해 불가피하게 'sort'를 하게 됩니다.
따라서 자료가 많거나 Index가 되어 있지 않은 필드를 대상으로 하게 되면
쿼리 시간이 길어질 수 있습니다.
저는 종종 여러테이블에서 검색을 할 때 UNION을 사용했었습니다. 물론 그 이외에도 사용하는 곳은 많이 있겠지만 알아두시면 종종 유용하게 사용하시게 될거라 믿어의심치 않습니다.
다음 포스팅에서는 SELECT INTO 구문에 대해서 알아보겠습니다.
그럼 오늘도 즐거운 하루보내시고 마무리 잘하시길 바랍니다.
그리고 즐거운 프로그래밍 되세요!~
'SQL' 카테고리의 다른 글
SQL INSERT INTO SELECT 구문 (0) | 2013.09.06 |
---|---|
SELECT INTO 구문 (0) | 2013.09.05 |
SQL RIGHT JOIN 구문 (1) | 2013.09.03 |
SQL LEFT JOIN 구문 (0) | 2013.09.02 |
SQL INNER JOIN 구문 (0) | 2013.08.31 |