mingming

Oracle - 집합연산자 본문

새싹 하이브리드 클라우드/Database

Oracle - 집합연산자

mingming_96 2023. 10. 8. 17:54
연산자 의미
UNION 중복 행이 제거된 두 query의 행
UNION ALL  중복 행이 포함된 두 query의 행
INTERSECT  두 query에 공통적인 행
MINUS 첫번째 query에 있는 행 중 두번쨰 query에 없는 행

 

집합 연산자 규칙

  • SELECT 리스트의 표현식은 개수가 일치해야 합니다.
  • 후속 query에 있는 각 열의 데이터 유형은 첫 번째 query에 있는 상응하는 열의 데이터 유형과 일치해야 합니다.
  • 실행 순서를 변경하는데 괄호를 사용할 수 있습니다.
  • ORDER BY 절은 명령문의 맨 끝에만 올 수 있습니다.

UNION 연산자

  • UNION 연산자는 한쪽 query에 의해 선택된 모든 행을 반환합니다. UNION 연산자를 사용하여 다중 테이블의 모든 행을 반환하고 중복 행을 제거합니다.
  • 선택된 열의 개수가 동일해야 합니다.
  • 선택된 열의 데이터 유형이 동일한 데이터 유형 그룹에 속해야 합니다.
  • 열 이름은 동일하지 않아도 됩니다.
  • UNION은 선택된 모든 열에 적용됩니다.
  • NULL 값은 중복 검사 시 무시되지 않습니다. 
  • 기본적으로 출력은 SELECT 절의 열을 기준으로 오름차순으로 정렬됩니다.
SELECT department_id, job_id
FROM employees
UNION
SELECT department_id, department_name
FROM departments;

 

UNION ALL 연산자 

모든 중복행을 포함하여 출력합니다.

SELECT department_id, job_id
FROM employees
UNION ALL
SELECT department_id, department_name
FROM departments;

 

INTERSECT 연산자

  • 양쪽 쿼리에 공통되는 행을 반환합니다.
  • query에서 SELECT 문으로 선택된 열의 개수와 데이터 유형은 query에 사용된 모든 SELECT 문에서 동일해야 합니다.
  • 교차 테이블 순서를 반대로 해도 결과에는 영향을 주지 않습니다.
  • INTERSECT에서는 NULL 값이 무시되지 않습니다.

 

MINUS 연산자

  • MINUS 연산자는 첫번째 query에 의해 선택되지만 두번쨰 query 결과 집합에는 없는 모든 구분 행을 반환합니다.
  • query에 사용되는 모든 SELECT 문에서 열의 개수가 동일해야 하며 해당 query의 SELECT 문에서 선택된 열의 데이터 유형은 동일한 데이터 유형 그룹에 속해야 합니다.  

SELECT 문 일치

열이 두 테이블 중 하나에 없는 경우 TO_CHAR 함수 또는 기타 변환 함수를 사용하여 데이터 유형을 일치시켜야 합니다. 

SELECT location_id, department_name "Deprtment", TO_CHAR(NULL) "Warehouse location"
FROM departments
UNION
SELECT location_id, TO_CHAR(NULL) "Department", state_province
FROM locations;

 

ORDER BY 절 사용 

  • ORDER BY 절은 복합 query의 맨 끝에 한 번만 올 수 있습니다.
  • 구성 요소 query에 개별적으로 ORDER BY 절을 사용할 수 없습니다. 
  • ORDER BY 절은 첫 번째 SELECT query의 열만 인식합니다.
  • 기본적으로 첫 번쨰 SELECT query의 첫 번째 열을 기준으로 오름차순으로 출력이 정렬됩니다.
SELECT location_id, department_name "Deprtment", TO_CHAR(NULL) "Warehouse location"
FROM departments
UNION
SELECT location_id, TO_CHAR(NULL) "Department", state_province
FROM locations
ORDER BY 1,2;

'새싹 하이브리드 클라우드 > Database' 카테고리의 다른 글

Oracle - 변환 함수  (2) 2023.10.09
Oracle - 단일 행 함수  (2) 2023.10.09
Oracle - Subquery  (0) 2023.10.07
Oracle - DELETE & TRUNCATE  (0) 2023.10.07
Oracle - 제약 조건 & Subquery  (0) 2023.10.07