[강의명]
패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반
[수강목록]
36. 집합 연산자와 서브커리 - 01. Union연산
37. 집합 연산자와 서브커리 - 02. UnionAll연산
[강의내용]
36. 집합 연산자와 서브커리 - 01. Union연산
[UNION이란?]
2개 이상의 SELECT문들의 결과 집합을 단일 결과 집합으로 결합하며 결합시 중복된 데이터는 제거된다.
JOIN이 수평으로 테이블을 연결하는 것이라면, UNION은 수직으로 연결하는 것이다.
그리고 JOIN은 기준 컬럼 1개가 필요하지만, UNION은 컬럼의 갯수, 데이터 타입이 동일해야 한다.
[문법]
SELECT COLUMN_1_1,
COLUMN_1_2
FROM TABLE_NAME_1
UNION
SELECT COLUMN_2_1,
COLUMN_2_2
FROM TABLE_NAME_2;
2개의 SELECT문 간 컬럼의 개수는 동일해야 하고 해당순서의 열은 서로 호환되는 데이터 유형이어야 한다.
또한, 2개의 SELECT문에서 중복되는 데이터값이 있다면 중복은 제거된다.
ORDER BY로 정렬하고자 할 경우, 맨 마지막 SELECT문에 ORDER BY절을 사용한다.
[샘플데이터 확인]
[실습1]
양 테이블을 있는 그대로 UNION 해본다.
SELECT *
FROM SALES2007_1
UNION
SELECT *
FROM SALES2007_2;
중복 데이터인 (Mary, 100000)는 없어진 것을 볼 수 있다.
[실습2]
이번에는 NAME 컬럼만 SELECT한 후 UNION해본다
SELECT NAME
FROM SALES2007_1
UNION
SELECT NAME
FROM SALES2007_2;
중복값이 제거되고 3개의 이름값만 남는다.
[실습3]
이번에는 AMOUNT 컬럼만 SELECT한 후 UNION해본다.
SELECT AMOUNT
FROM SALES2007_1
UNION
SELECT AMOUNT
FROM SALES2007_2;
37. 집합 연산자와 서브커리 - 02. UnionAll연산
[UNION ALL 이란?]
2개 이상의 SELECT문들의 결과 집합을 단일 결과 집합으로 결합하며 결합시 중복된 데이터도 모두 출력한다.
[실습1]
SALES2007_1과 SALES2007_2 양 테이블을 있는 그대로 UNION 해본다.
SELECT *
FROM SALES2007_1
UNION ALL
SELECT *
FROM SALES2007_2;
UNION과 다르게 중복 데이터 (Mary, 100000)도 그대로 출력된다.
[실습2]
SELECT NAME
FROM SALES2007_1
UNION ALL
SELECT NAME
FROM SALES2007_2;
[실습3]
SELECT AMOUNT
FROM SALES2007_1
UNION ALL
SELECT AMOUNT
FROM SALES2007_2;