본문 바로가기
SQL

SQL UNION 구문

by 진격의 파파 2013. 9. 4.
반응형

 

 

 

안녕하세요!! 

이번에 포스팅할 내용은 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