이 포스트를 만든 목적

  • 심심해서

이 포스트의 준비물

  • gVim 7.2
  • Postgresql 8.4.2
  • pgAdmin 1.10.1

참조 링크

내용

SQL UNION 은 무엇인가?

  • SQL 연산자이다.
  • 두개 이상의 SELECT 결과를 합칠 때 사용 한다.
  • 결과들을 합칠 때, 중복 제거를 할 수 있고, 중복을 포함 할 수 있다.

SQL UNION 문법은 어떻게 되는가?

SQL UNION 을 사용 할 때 주의 해야 하는게 있는가?

  • 여러 SELECT 결과 칼럼(열)들은 모두 동일한 갯수를 가지고 있어야 한다.
    - 위 샘플에서 order_num 칼럼 1개만 쓰면, 모둔 SELECT 문은 칼럼 1개만 써야 한다.

  • 여러 SELECT 결과 칼럼(열)들은 다른 SELECT 결과 칼럼(열)들과 동일한 데이터 형이거나 호환 되어야 한다.
    - 위 샘플에서 order_num 칼럼의 데이터 타입이 char 이라면, 다른 SELECT 문 결과 역시 char와 같거나 호환 되어야 한다.

SQL UNION 을 어떻게 이해 하는게 좋은가?

  1. 종이와 연필을 준비한다.
  2. 여러 SELECT 문의 결과를 각각 그린다.

  3. UNION 일 경우, 테이블 T를 준비한다.
  4. 각 SELECT->row 들을 테이블 T와 똑같은게 있는지 검사한다.
  5. 똑같은게 있을 경우, T에 기입하지 않는다.
    똑같은게 없을 경우, T에 기입한다.
  6. 4 ~ 5번 작업을 다 할 때까지 반복한다.
  7. 여기서 나온 T가 UNION 의 결과이다.

  8. UNION ALL 일 경우, 각각 그린 SELECT->row들을 테이블 A에 기입한다.
  9. 모든 SELECT->row들을 A에 다 기입했다면, 이 테이블 A가 UNION ALL 값들인 것이다.

맛보기 그림

orderitems table

orders table

SELECT UNION

UNION 해석

여담

  • 직접 UNION 을 해보기 전까진 잘 모른다.


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기