[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 : 각 쿼리의 모든 결과를 포함한 합집합 (중복제거 안함)
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
[Storage] DAS (Direct Attached Storage), NAS (Network Attached Storage), SAN (Storage Area Network) (0) | 2022.02.17 |
---|---|
[정보시스템 구축관리] DOS 공격(Denial of Service attack) 및 DOS 공격의 종류 (0) | 2022.02.11 |
정보처리기사 시험 재도전 (0) | 2022.01.12 |
[정보처리기사] 정보처리기사 실기시험 도전(무조건 합격 다짐) (0) | 2020.09.04 |
정보처리기사 1주일 공부해서 필기 합격 (0) | 2019.08.09 |
최근댓글