반응형
청춘고양이
배움을 기록하는 곳
청춘고양이
전체 방문자
오늘
어제
  • Hello World (119)
    • JQuery (5)
    • In my opinion (4)
    • HTML&CSS (8)
    • JS (9)
    • JAVA (21)
    • Spring Boot (21)
    • Node.js (1)
    • Linux (7)
    • Git (2)
    • Kotlin (4)
    • Fluttor (4)
    • 정보처리기사 (19)
    • AWS (1)
    • Oracle (8)
    • MySQL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 스크롤js
  • js 패스워드 변경
  • 제이쿼리
  • js 비밀번호
  • 제이쿼리 패스워드 변경
  • js
  • 자바db연동
  • spring 기본설정
  • 제이쿼리 비밀번호
  • css
  • 청춘고양이
  • ScrollEffectJs
  • 자바
  • js 로또 번호
  • 제이쿼리 버튼클릭시 색 변경
  • 가위바위보js
  • 쉬프트 연산
  • 객체 안의 함수
  • 중복 제거 로또
  • 초보개발

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
청춘고양이

배움을 기록하는 곳

SQL의 UNION, UNION ALL, JOIN 연산자: 차이점과 활용 예제
Oracle

SQL의 UNION, UNION ALL, JOIN 연산자: 차이점과 활용 예제

2024. 7. 26. 14:15
반응형

데이터베이스 쿼리를 작성할 때 자주 사용되는 연산자들 중 UNION, UNION ALL, 그리고 JOIN의 차이를 이해하는 것은 매우 중요합니다. 이 포스팅에서는 이 세 가지 연산자의 기능과 차이점에 대해 자세히 설명하고, 각각의 결과를 시각적으로 비교해보겠습니다.

예시 데이터

우선, 두 개의 테이블을 정의합니다:

1. UNION

UNION 연산자는 두 개 이상의 SELECT 쿼리의 결과를 결합합니다. 이때 UNION은 중복된 행을 제거하고 하나의 결과 집합을 반환합니다.

특징

  • 중복 제거: UNION은 결합된 결과에서 중복된 행을 제거합니다.
  • 컬럼 수: 결합되는 모든 쿼리는 동일한 수의 컬럼을 가져야 하며, 각 컬럼의 데이터 타입도 호환 가능해야 합니다.
  • 정렬: 기본적으로 정렬되지 않지만, ORDER BY를 사용하여 결과를 정렬할 수 있습니다.
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;

위 예제에서 table1과 table2에서 가져온 결과가 중복된 행 없이 결합됩니다.

2. UNION ALL

UNION ALL 연산자는 UNION과 거의 유사하지만, 중복된 행을 제거하지 않고 모든 결과를 포함합니다. 따라서 성능이 더 빠를 수 있습니다.

특징

  • 중복 포함: UNION ALL은 중복된 행을 제거하지 않습니다.
  • 컬럼 수: UNION과 마찬가지로 결합되는 쿼리들은 동일한 수의 컬럼을 가져야 하며, 각 컬럼의 데이터 타입도 호환 가능해야 합니다.
  • 정렬: 기본적으로 정렬되지 않지만, ORDER BY를 사용하여 결과를 정렬할 수 있습니다.
SELECT column1, column2 FROM table1
UNION ALL
SELECT column1, column2 FROM table2;

위 예제에서 table1과 table2에서 가져온 모든 결과가 중복된 행을 포함하여 결합됩니다.

3. JOIN

JOIN 연산자는 두 개 이상의 테이블을 결합하여 하나의 결과 집합을 반환합니다. JOIN의 종류에는 여러 가지가 있으며, 가장 많이 사용되는 것은 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN 등이 있습니다.

INNER JOIN

두 테이블 간의 공통된 값이 있는 행만 반환합니다.

SELECT a.column1, b.column2
FROM table1 a
INNER JOIN table2 b ON a.common_column = b.common_column;

LEFT JOIN (또는 LEFT OUTER JOIN)

왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 반환합니다. 일치하지 않는 경우 NULL을 반환합니다.

SELECT a.column1, b.column2
FROM table1 a
LEFT JOIN table2 b ON a.common_column = b.common_column;

RIGHT JOIN (또는 RIGHT OUTER JOIN)

오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 반환합니다. 일치하지 않는 경우 NULL을 반환합니다.

SELECT a.column1, b.column2
FROM table1 a
RIGHT JOIN table2 b ON a.common_column = b.common_column;

FULL JOIN (또는 FULL OUTER JOIN)

두 테이블의 모든 행을 반환하며, 일치하지 않는 경우 NULL을 반환합니다.

SELECT a.column1, b.column2
FROM table1 a
FULL JOIN table2 b ON a.common_column = b.common_column;

결론

UNION, UNION ALL, 그리고 JOIN은 모두 데이터를 결합하기 위한 연산자이지만, 각각의 사용 목적과 동작 방식이 다릅니다. UNION은 중복된 행을 제거하여 결과를 결합하고, UNION ALL은 중복을 포함하여 결합합니다. JOIN은 두 테이블을 특정 조건에 따라 결합하여 하나의 결과 집합을 만듭니다. 이러한 연산자들의 차이를 잘 이해하고 적절하게 사용하는 것이 데이터베이스 쿼리 작성의 핵심입니다.

반응형
저작자표시 변경금지 (새창열림)

'Oracle' 카테고리의 다른 글

Oracle 데이터베이스 링크(DB Link) 사용법  (1) 2024.09.05
Import CSV raw data from an Oracle database: Using Database Import  (0) 2024.06.21
The boundaries of data validation queries: From accuracy to security  (0) 2024.06.21
Ranking by group with ROW_NUMBER()  (0) 2024.06.14
SQL Loader  (0) 2024.06.14
    'Oracle' 카테고리의 다른 글
    • Oracle 데이터베이스 링크(DB Link) 사용법
    • Import CSV raw data from an Oracle database: Using Database Import
    • The boundaries of data validation queries: From accuracy to security
    • Ranking by group with ROW_NUMBER()
    청춘고양이
    청춘고양이
    신입개발자

    티스토리툴바