티스토리 뷰

SQL UNION 관련 명령어 정리

명령어 중복 제거 설명
UNION O 여러 SELECT 결과를 수직으로 합치되, 중복된 행은 제거
UNION ALL X 여러 SELECT 결과를 수직으로 합치며, 중복 행도 그대로 포함
INTERSECT O 두 SELECT 결과에서 공통된 행만 반환 (MySQL 미지원)
EXCEPT / MINUS O 첫 SELECT 결과에서 두 번째 SELECT 결과에 없는 행만 반환
→ EXCEPT: PostgreSQL, SQL Server
→ MINUS: Oracle
INNER JOIN / JOIN - 두 테이블에서 조건에 일치하는 행만 선택하여 수평으로 결합
CROSS JOIN - 두 테이블의 모든 조합을 반환하는 데카르트 곱
LEFT JOIN - 왼쪽 테이블의 모든 행을 기준으로 오른쪽 테이블과 조인, 없는 경우 NULL
RIGHT JOIN - 오른쪽 테이블의 모든 행을 기준으로 왼쪽 테이블과 조인, 없는 경우 NULL
FULL OUTER JOIN - 양쪽 테이블의 모든 행을 기준으로 포괄적으로 조인, 어느 한쪽에만 있어도 포함됨

 


각 명령어 예제

예제 테이블

table_a
id name
1 Alice
2 Bob
3 Clara
table_b
id name
2 Bob
3 Clara
4 Dave
    table_a             table_b
  ┌────────┐     ┌────────┐
  │ Alice       │     │ Bob        │
  │ Bob         │     │ Clara      │
  │ Clara       │     │ Dave       │
  └────────┘     └────────┘

 


1. UNION

https://bigtechinterviews.com/sql-union-vs-union-all/

SELECT name FROM table_a
UNION
SELECT name FROM table_b;
A ∪ B  = {Alice, Bob, Clara, Dave}
    ┌────────┐
    │ Alice      │
    │ Bob        │
    │ Clara      │
    │ Dave       │
    └────────┘
name
Alice
Bob
Clara
Dave
  • 중복 제거
    • 내부적으로 DISTINCT 실행
  • 정렬은 보장되지 않음 (원하면 ORDER BY 추가)

 


 

2. UNION ALL

https://bigtechinterviews.com/sql-union-vs-union-all/

SELECT name FROM table_a
UNION ALL
SELECT name FROM table_b;
  A ∪ B (중복 포함) = {Alice, Bob, Clara, Bob, Clara, Dave}
name
Alice
Bob
Clara
Bob
Clara
Dave
  • 중복 처리 연산을 하지 않음
  • Union보다는 더 성능이 좋음

 


3. INTERSECT (교집합)

SELECT name FROM table_a
INTERSECT
SELECT name FROM table_b;
  A ∩ B = {Bob, Clara}
name
Bob
Clara
  • 두 테이블 모두에 있는 name만 출력
  • 일부 DBMS에서는 미지원

 


4. EXCEPT (또는 MINUS)

PostgreSQL / SQL Server:

SELECT name FROM table_a
EXCEPT
SELECT name FROM table_b;

Oracle:

SELECT name FROM table_a
MINUS
SELECT name FROM table_b;
  A - B = {Alice}
name
Alice
  • table_a에는 있고 table_b에는 없는 값만 출력

'Computer > SQL' 카테고리의 다른 글

[SQLD] 데이터베이스의 구조  (0) 2025.05.07
[SQLD] 데이터 모델링  (0) 2025.05.05
[SQLD] 모델링(Modeling)의 이해  (0) 2025.05.05
[SQLD] 단기 특강  (0) 2023.11.15
[SQL] SQL 문법 작성 순서 & 문장 작동 순서  (0) 2023.11.12
최근에 올라온 글
최근에 달린 댓글
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함