MySQL에서의 Set Operations에 대해 자세히 알아보겠습니다.
Set Operations는 두 개 이상의 쿼리 결과를 하나의 결과 집합으로 결합하는 기능입니다. 대표적인 Set Operations로는 UNION, INTERSECT, EXCEPT가 있습니다.
먼저 UNION 연산자에 대해 살펴보겠습니다. UNION은 두 개의 쿼리 결과를 하나의 결과 집합으로 합칩니다. 중복되는 행은 하나만 표시됩니다.
예를 들어, 다음과 같은 두 개의 테이블이 있다고 가정해 봅시다:
customers 테이블
+----+------------+----------+
| id | name | city |
+----+------------+----------+
| 1 | John Doe | New York |
| 2 | Jane Smith | London |
| 3 | Bob Johnson| Chicago |
+----+------------+----------+
suppliers 테이블
+----+------------+----------+
| id | name | city |
+----+------------+----------+
| 1 | ABC Corp | New York |
| 2 | XYZ Inc | Tokyo |
| 3 | MNO Ltd | London |
+----+------------+----------+
이 두 테이블의 city 컬럼 값을 가져오는 쿼리를 UNION으로 결합할 수 있습니다:
SELECT city FROM customers
UNION
SELECT city FROM suppliers;
결과:
+----------+
| city |
+----------+
| New York |
| London |
| Chicago |
| Tokyo |
+----------+
INTERSECT 연산자는 두 개의 쿼리 결과에서 공통된 행만을 선택합니다. 위 예시에서 INTERSECT를 사용하면 customers 테이블과 suppliers 테이블에 모두 존재하는 'New York'과 'London'이 선택됩니다.
SELECT city FROM customers
INTERSECT
SELECT city FROM suppliers;
결과:
1
+----------+
| city |
+----------+
| New York |
| London |
+----------+
마지막으로 EXCEPT 연산자는 왼쪽 쿼리 결과에서 오른쪽 쿼리 결과를 뺀 나머지 행을 선택합니다. 위 예시에서 EXCEPT를 사용하면 customers 테이블에만 존재하는 'Chicago'가 선택됩니다.
SELECT city FROM customers
EXCEPT
SELECT city FROM suppliers;
결과:
+----------+
| city |
+----------+
| Chicago |
+----------+
이처럼 Set Operations를 사용하면 복잡한 쿼리를 보다 간단하고 효과적으로 작성할 수 있습니다. 특히 UNION, INTERSECT, EXCEPT 연산자를 적절히 활용하면 다양한 데이터 분석 및 처리 작업을 수행할 수 있습니다.
MySQL에서 Set Operations는 매우 강력한 기능이므로, 이를 잘 활용하면 데이터베이스 쿼리 작성 시 큰 도움을 받으실 수 있을 것입니다.
'SQL > MYSQL' 카테고리의 다른 글
[MySQL] ALL 사용 방법 및 예시 (0) | 2024.08.07 |
---|---|
[MySQL] ANY, IN, SOME 서브쿼리 사용 방법 및 예시 (0) | 2024.08.06 |
[MySQL] Comparisons Using Subqueries(서브쿼리) 사용 방법 및 예시 (0) | 2024.08.04 |
[MySQL] Subquery as Scalar Operand(서브쿼리) 사용 방법 및 예시 (0) | 2024.08.03 |
[MySQL] Join 사용 방법 및 예시 (0) | 2024.08.01 |
[MySQL] SELECT INTO 사용 방법 및 예시 (0) | 2024.07.31 |
[MySQL] Parenthesized Query 사용 방법 및 예시 (0) | 2024.07.29 |
[MySQL] LOAD DATA 사용 방법 및 예시 (0) | 2024.07.28 |