[Database] WHERE 조건절과 UNION, UNION ALL 사용법

 

SQL문 중에 많이 쓰이는 WHERE 조건절과 UNION, UNION ALL 사용법에 대해 알아보겠습니다.

 

[EMPLOYEE]

EMPNUMBER NAME DEP SAL
1 총무팀 1500
2 인사팀 2000
3 영업팀 2500
4 생산팀 3000

 

[쿼리]

SELECT * FROM EMPLOYEE WHERE SAL >= 2000

UNION ALL

SELECT * FROM EMPLOYEE WHERE SAL >= 2500;

 

[EMPLOYEE] 테이블에서 위 쿼리문을 실행했을 때 어떤 결과가 도출되는지 확인해 보겠습니다.

 

SELECT * FROM EMPLOYEE WHERE SAL >= 2000

EMPLOYEE 테이블에 있는 모든 칼럼 중 SAL 값이 2000 이상인 값이 출력됩니다.

 

EMPNUMBER NAME DEP SAL
2 인사팀 2000
3 영업팀 2500
4 생산팀 3000

 

SELECT * FROM EMPLOYEE WHERE SAL >= 2500;

마찬가지로 EMPLOYEE 테이블에 있는 모든 칼럼 중 SAL 값이 2500 이상인 값이 출력됩니다.

 

반환값은 다음과 같습니다.

EMPNUMBER NAME DEP SAL
3 영업팀 2500
4 생산팀 3000

 

③ 다음으로 UNION ALL을 이용하여 여러 개의 SELECT 문 결과를 합치면 됩니다.

UNION을 사용할 경우 중복을 제거한 결과를 반환하고, UNION ALL을 사용하면 중복을 제거하지 않고 합쳐진 결과를 그대로를 반환합니다.

 

따라서 UNION ALL을 실행하면 다음과 같은 결과가 반환됩니다.

 

EMPNUMBER NAME DEP SAL
2 인사팀 2000
3 영업팀 2500
4 생산팀 3000
3 영업팀 2500
4 생산팀 3000

 

**참고

UNION : 각 쿼리의 결과 합을 반환하는 합집합 (중복제거)

UNION ALL : 각 쿼리의 모든 결과를 포함한 합집합 (중복제거 안함)

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기