728x90

 

두 개의 테이블에 공통된 정보를 수집하고 싶을 경우

위와 같은 테이블이 존재한다고 하자.

  • UNION : A에 속하거나 B에 속하는 경우를 모두 검색한다. (중복 제거)

예제) salary가 105이거나 year가 2014 이상인 행을 모두 검색

SELECT id
FROM salarytable
WHERE salary >= 105
UNION
SELECT id
FROM salarytable
WHERE year >= 2014;
 
  • UNION ALL : UNION과 동일하지만 중복을 허용한다.
SELECT id
FROM salarytable
WHERE salary >= 105
UNION ALL
SELECT id
FROM salarytable
WHERE year >= 2014;
 
  • INTERSECT : 두 테이블에 모두 속할경우만 검색한다. (교집합)
SELECT id
FROM salarytable
WHERE salary >= 105
INTERSECT
SELECT id
FROM salarytable
WHERE year >= 2014;
 
  • EXPECT : A 테이블에서 B 테이블을 제외한 부분만 검색한다. (차집합)
SELECT id
FROM salarytable
WHERE salary >= 105
EXCEPT
SELECT id
FROM salarytable
WHERE year >= 2014;
 

 

 

728x90

'Database' 카테고리의 다른 글

TRANSACTION  (0) 2023.05.11
JOIN  (0) 2023.05.11
INDEX  (0) 2023.05.11
정규화  (0) 2023.05.10
CREATE, DROP, ALTER  (0) 2023.05.10

+ Recent posts