[SQL] UNION, UNION ALL, INTERSECT, EXCEPT 연산자

2021. 3. 12. 11:44
728x90
 

흐릿한 이미지는 클릭하면 확대 됩니다.

 

개념

부터알고 가면 쉽다.

연산자로는

UNION, UNION ALL(합집합), INTERSECT(교집합), EXCEPT(차집합)<- 이렇게 알면 편하고

사전 뜻으로는

UNION : 통합, INTERSECT : 교차하다, EXCEPT : 제외하다 <- 이렇게 알면 편하다.

주의 사항

- TableA 와 TableB 의 컬럼의 갯수와 순서가 동일해야 함

- 각 상호 비교되는 컬럼들의 데이터 형식이 호환되어야 함

 

TABLE 1

TABLE 2

1. UNION

합집합. 두개 이상 쿼리 결과를 하나의 테이블로 합친다. 결과에 중복은 없다.

SELECT ID
FROM TEST1 

UNION 

SELECT ID
FROM TEST2

ORDER BY ID

 

결과

테스트1의 1,2,3을 모조리 조회하고 테스트2를 조회해서 가져다 붙이는데 유니온은 중복을 없애니 테스트2의 1,3은 안나온다.

2. UNION ALL

UNION과 기본적으로는 같은데 모든 열을 반환한다. 중복값이 있다.

SELECT ID
FROM TEST1 

UNION ALL

SELECT ID
FROM TEST2 

 

 

 

 

결과

중복값이 있으니 모든 테이블 조회를 한다

3. INTERSECT

교집합. 테이블 간 공통으로 있는 열들을 반환한다.

SELECT ID
FROM TEST1 

INTERSECT

SELECT ID
FROM TEST2 

결과

공통으로 있는 데이터만 뽑아온다.

4. EXCEPT

 차집합. 첫번째 쿼리에는 있지만 두번째 쿼리에는 없는 열들을 반환한다.
=> MSSQL에서 쓴다고 한다.

SELECT ID
FROM TEST1 

EXCEPT

SELECT ID
FROM TEST2 

RESULT

TEST1  데이터 중  TEST2 와 데이터가 같지 않거나

TEST1 에는 있는데 TEST2에는 없는 데이터를 리턴

6. 마지막엔 입맛에 맞게 ORDER BY 절 추가

7. MINUS란 연산자도 있는데 그건 나도 잘 안써서 개인적으로 찾아보길바란다.

도움받은곳 : m.blog.naver.com/PostView.nhn?blogId=nitrogehne&logNo=150165162134&proxyReferer=https:%2F%2Fwww.google.com%2F

rocabilly.tistory.com/50

        아래 사진이 저의 구독버튼입니다 ~  

        눌러주고 가시면 내일 좋은일 생기실꺼에요++! ^∪^

하트 눌러주시면 블로거(>ㅁ<)에게 큰 힘이 됩니다 = ^∪^

728x90

'DATABASE > 공통 SQL' 카테고리의 다른 글

[SQL] IS NULL, IS NOT NULL  (0) 2021.03.08
[공통 SQL] 기본키(자연키,인조키)  (0) 2021.03.02
[공통 SQL] WHERE 1=1  (0) 2021.03.02