
UNION (합집합)
두 개의 릴레이션(테이블)에서 모든 행을 합쳐서 중복 없이 반환하는 연산입니다. 이때, 두 테이블의 속성(컬럼)의 수가 같아야 하고, 각 속성의 도메인(데이터 타입)이 동일해야 합니다.
예시로, 프로젝트 위치 도시들과 Simpson 직원이 거주하는 도시들을 모두 나열하고 두 정보를 결합해서 출력해 보겠습니다.

SELECT Location AS City
FROM Project
우선, 프로젝트 테이블의 위치 도시들을 선택합니다. 이 쿼리문은 Toronto, London, New York, San Francisco를 출력할 것입니다.
SELECT City
FROM Employee
WHERE Name = 'Simpson'
Employee 테이블에서 Name이 "Simpson"인 직원들의 City(도시) 정보를 가져옵니다. 이 쿼리문은 Toronto와 San Francisco를 출력할 것입니다.
SELECT Location AS City
FROM Project
UNION
SELECT City
FROM Employee
WHERE Name = 'Simpson';
UNION으로 두 쿼리의 합집합을 구합니다. 이 쿼리는 프로젝트가 진행되는 도시들과 Simpson 직원들이 거주하는 도시들을 모두 나열하고 중복된 도시를 제거하여 최종적으로 도시 리스트를 출력합니다.
DIFFERENCE (차집합)
릴레이션 R에만 존재하고 S에는 없는 행만 반환하는 연산입니다. 이 경우 또한 두 테이블의 속성(컬럼)의 수가 같아야 하고, 각 속성의 도메인(데이터 타입)이 동일해야 합니다.

학생들의 FirstName과 교수들의 FirstName을 비교하여, 학생들의 FirstName과 중복되지 않는 교수들의 FirstName만을 반환하는 쿼리를 작성해 봅시다.

SELECT FirstName
FROM Professor
WHERE FirstName NOT IN (SELECT FirstName FROM Student);
Student 테이블에서 FirstName은 David, Diana, Michael, Daniel이므로, 이 이름들과 중복되지 않는 교수들의 이름을 찾아야 합니다. Professor 테이블에서 FirstName이 David와 Michael인 교수는 제외되고, 나머지 Denise와 Julia만 결과로 반환됩니다.
'Computer Science > SQL' 카테고리의 다른 글
SQL | INNER JOIN, NATURAL JOIN, EQUI JOIN 완벽 정리 (3) | 2025.04.23 |
---|---|
SQL | 관계형 데이터베이스에서 Cartesian Product란? (0) | 2025.04.22 |
SQL | Selection과 Projection 정리 (0) | 2025.04.20 |
SQL | 관계형 데이터베이스의 기본 관계 유형 (1:1, 1:N, M:N 관계) (0) | 2025.04.19 |
SQL | 관계형 데이터베이스 기본 용어 정리 (Domain, Relation, Table, Attribute, Column, Row, Tuple) (0) | 2025.04.18 |

UNION (합집합)
두 개의 릴레이션(테이블)에서 모든 행을 합쳐서 중복 없이 반환하는 연산입니다. 이때, 두 테이블의 속성(컬럼)의 수가 같아야 하고, 각 속성의 도메인(데이터 타입)이 동일해야 합니다.
예시로, 프로젝트 위치 도시들과 Simpson 직원이 거주하는 도시들을 모두 나열하고 두 정보를 결합해서 출력해 보겠습니다.

SELECT Location AS City
FROM Project
우선, 프로젝트 테이블의 위치 도시들을 선택합니다. 이 쿼리문은 Toronto, London, New York, San Francisco를 출력할 것입니다.
SELECT City
FROM Employee
WHERE Name = 'Simpson'
Employee 테이블에서 Name이 "Simpson"인 직원들의 City(도시) 정보를 가져옵니다. 이 쿼리문은 Toronto와 San Francisco를 출력할 것입니다.
SELECT Location AS City
FROM Project
UNION
SELECT City
FROM Employee
WHERE Name = 'Simpson';
UNION으로 두 쿼리의 합집합을 구합니다. 이 쿼리는 프로젝트가 진행되는 도시들과 Simpson 직원들이 거주하는 도시들을 모두 나열하고 중복된 도시를 제거하여 최종적으로 도시 리스트를 출력합니다.
DIFFERENCE (차집합)
릴레이션 R에만 존재하고 S에는 없는 행만 반환하는 연산입니다. 이 경우 또한 두 테이블의 속성(컬럼)의 수가 같아야 하고, 각 속성의 도메인(데이터 타입)이 동일해야 합니다.

학생들의 FirstName과 교수들의 FirstName을 비교하여, 학생들의 FirstName과 중복되지 않는 교수들의 FirstName만을 반환하는 쿼리를 작성해 봅시다.

SELECT FirstName
FROM Professor
WHERE FirstName NOT IN (SELECT FirstName FROM Student);
Student 테이블에서 FirstName은 David, Diana, Michael, Daniel이므로, 이 이름들과 중복되지 않는 교수들의 이름을 찾아야 합니다. Professor 테이블에서 FirstName이 David와 Michael인 교수는 제외되고, 나머지 Denise와 Julia만 결과로 반환됩니다.
'Computer Science > SQL' 카테고리의 다른 글
SQL | INNER JOIN, NATURAL JOIN, EQUI JOIN 완벽 정리 (3) | 2025.04.23 |
---|---|
SQL | 관계형 데이터베이스에서 Cartesian Product란? (0) | 2025.04.22 |
SQL | Selection과 Projection 정리 (0) | 2025.04.20 |
SQL | 관계형 데이터베이스의 기본 관계 유형 (1:1, 1:N, M:N 관계) (0) | 2025.04.19 |
SQL | 관계형 데이터베이스 기본 용어 정리 (Domain, Relation, Table, Attribute, Column, Row, Tuple) (0) | 2025.04.18 |