- UNION: 중복을 제거한 집합
- UNION ALL: 중복을 제거하지 않은 집합
SELECT CustomerName AS Name, City, Country, 'CUSTOMER'
FROM Customers
UNION
SELECT SupplierName AS Name, City, Country, 'SUPPLIER'
FROM Suppliers
ORDER BY Name;
![](https://velog.velcdn.com/images/jeong_yooony/post/a1c733b2-3565-4836-b24d-1ca034016c42/image.png)
합집합
![](https://velog.velcdn.com/images/jeong_yooony/post/cb8d6c9c-94a6-498a-b71c-93c1d24f86da/image.png)
SELECT CategoryID AS ID FROM Categories
WHERE CategoryID > 4
UNION
SELECT EmployeeID AS ID FROM Employees
WHERE EmployeeID % 2 = 0;
-- UNION ALL로 바꿔볼 것
![](https://velog.velcdn.com/images/jeong_yooony/post/a9fed007-92dc-463e-b17d-81a86071719c/image.png)
교집합
![](https://velog.velcdn.com/images/jeong_yooony/post/15be15ea-c366-46ad-9c19-8ab5a9a94737/image.png)
SELECT CategoryID AS ID
FROM Categories C, Employees E
WHERE
C.CategoryID > 4
AND E.EmployeeID % 2 = 0
AND C.CategoryID = E.EmployeeID;
![](https://velog.velcdn.com/images/jeong_yooony/post/16f6fc90-aa9a-44d7-a1a4-02e4f7dc79ae/image.png)
차집합
![](https://velog.velcdn.com/images/jeong_yooony/post/a87f0b77-d3b4-482e-b76c-ca0386179312/image.png)
SELECT CategoryID AS ID
FROM Categories
WHERE
CategoryID > 4
AND CategoryID NOT IN (
SELECT EmployeeID
FROM Employees
WHERE EmployeeID % 2 = 0
);
![](https://velog.velcdn.com/images/jeong_yooony/post/078d9c9f-7e1e-4414-8f55-62681fbd1699/image.png)
대칭차집합
![](https://velog.velcdn.com/images/jeong_yooony/post/3bf4f27e-3093-4912-9cfa-3b6841f896c6/image.png)
SELECT ID FROM (
SELECT CategoryID AS ID FROM Categories
WHERE CategoryID > 4
UNION ALL
SELECT EmployeeID AS ID FROM Employees
WHERE EmployeeID % 2 = 0
) AS Temp
GROUP BY ID HAVING COUNT(*) = 1;
![](https://velog.velcdn.com/images/jeong_yooony/post/d672ec84-29fe-424b-a379-4584c8270308/image.png)