구름조아

비등가조인, 집합연산자, Union all, Intersect 본문

SQLD자격증공부/SQL활용

비등가조인, 집합연산자, Union all, Intersect

김옹희 2023. 5. 11. 11:17

1. 비등가조인

  • 조인을 할 때 꼭 등가 조인을 해야 하는건 아니다.
  • 특정 범위나 같이 않다는 조건으로도 조인을 할 수 있다.
select c.name as 고객명
         , c.point as 고객_point
         , g.name as 상품명
from customer c join gift g
on c.point between g.point_s and g.point_e;

2. 집합연산자

  • 조인은 두개의 테이블을 하나로 만드는데, 좌우로 붙이는 개념이다.
  • 집합연산자는 ROW 단위로, 데이터를 위아래로 붙이는 개념이다.
  • 두개 이상의 SELECT 결과를 하나로 만들어 준다.
  • SELECT절의 컬럼수가 같아야 하고, 데이터타입의 호환이 되어야 한다.
UNION 여러 SELECT 결과에 대한 합집합이다. 단, 모든 컬럼의 데이터의 중복을 제거 한다.
그리고 정렬하여 출력한다.
UNION ALL Union과 같지만 중복을 제거 하지 않는다.
INTERSECT 두 SELECT 결과의 교집합을 출력한다.
중복을 제거하고, 정렬한다.
MINUS / EXCEPT 차집합의 결과를 출력한다.
Minus는 오라클용이다.

3. UNION ALL, UNION

SELECT * FROM gift union all
SELECT * FROM gift;

SELECT * FROM gift union all
SELECT name, point_s FROM gift;

SELECT * FROM gift union
SELECT * FROM gift;

4. INTERSECT, MINUS

create table gift_inter as select * from gift where point_s > 12;

SELECT * FROM gift intersect
SELECT * FROM gift_inter;

SELECT * FROM gift minus
SELECT * FROM gift_inter;