오라클 비긴즈 06 ( Set Operator [ UNION ] )

2023. 2. 13. 17:49· '국비지원'의 시작

 앞에서 컬럼( COLUMN ) 과 컬럼( COLUMN) 을 연결하는 JOIN 에 대해서 배웠다면,  이번에는 행(ROW) 과 행(ROW)을 연결시켜주는 'UNION' 에 관해서 이야기하려고 한다. UNION에 대해서 이야기하기 위해서는 SET OPERATOR ( SET 연산자, 집합연산자) 를 알아야한다. UNION 은 집합연산자 중의 한 종류이기 때문이다. 집합연산자에는 UNION 말고도 ' UNION  ALL  ' , ' INTERSECT ' , ' MINUS ' 를 가지고 있다.  UNION과 UNION ALL 에 대해서와 둘의 차이점에 대해서 자셍히 설명하고 나머지 두개는 간략하게 설명하도록 하겠다.  앞에서 JOIN을 설명할 때, 집합을 가지고 설명했는데 , UNION 또한 집합을 통해 설명하면 쉽게 이야기 할 수 있기에 집합을 가정하고 설명하도록 하겠다.

-- 집합 A 와 B 를 테이블 이라고 생각해보자
--  집합 A ( 또는 테이블 A ) =  {  1 , 2 , 3 }  
--   집합 A ( 또는 테이블 A ) =  { 3  , 4 , 5 }
A UNION B = { 1 , 2 , 3 , 4 , 5 }  //   B UNION A = { 1 , 2 , 3 , 4 , 5 }
-- ' UNION ' 은 합집합이라고 생각하면 된다. 또한 , 합집합을 하는 동시에  두 집합사이의 공통 원소가 있다면, 중복을
-- 없애고 공통원소를 하나만 출력하도록 한다.  UNION 을 하면 항상 첫번째 컬럼을 기준으로 오름차순 정렬되어 나온
-- 다. 그러므로, A와 B의 위치를 바꿔도 같은 값이 나오게 된다. 
A UNION ALL B =  { 1 , 2 , 3 ,  3 , 4 , 5 } // B UNION ALL  A = { 3 , 4 , 3 , 4 , 5 }  
-- ' UNION ALL ' 은  UNION 과 마찬가지로 합집합이지만, 둘 사이에는 확연한 차이가 있다. UNION 은 A와 B 사이의
-- 공통 원소가 있다면, 즉 , 중복이 있는 사항들을 없애고 하나만 출력해준 반면, UNION ALL 은 모두 출력해준다는 차이--- 점이 있습니다.  또한, UNION ALL 은 오름차순 정렬을 해주지 않고, A UNION ALL B 라면 A 부터 나오고, 그다음에는 --- B로 나오게 됩니다. 즉 ,  UNION ALL 을 한 순서대로 들어가게 됩니다.

 다음으로는  INTERSECT( 교집합 ) , MINUS ( 차집합 ) 에 대해 설명하도록 하겠습니다.  INTERSECT 는 집합에서의 교집합의 의미와 매우 동일하다.  A INTERSECT B 를 하게 되면, 테이블( 또는 뷰 ) A 와 테이블( 또는 뷰 ) B 중에서 데이터의 값이 동일한 행을 찾게된다면 , 이를 뽑아주는 것이다. 다음으로 ,  A MINUS B 를 하면 , 테이블 ( 또는 뷰 ) 에서 A 에서 B와 공통된 행을 빼주고, 뽑아주는 것이다. MINUS 는 실수로 무언가를 지웠을 경우에, 백업 데이터와의 비교를 통해서 , 무엇이 사라졌는 지 파악할 수 있다. 

 이렇게, 집합 연산자 ( SET OPERATOR ) 에 대해서 간단히  배워봤습니다. UNION 과 UNION ALL 차이점을 알고 있는 것이 매우 중요하니 , 이에 대해서 까먹지 않도록 주의하는 게 좋을 거 같습니다. 

 

 

''국비지원'의 시작' 카테고리의 다른 글

오라클 비긴즈 08 ( Constraints ( 제약 ) )  (0) 2023.02.15
오라클 비긴즈 07 ( SQL (Structure Query Language) )  (0) 2023.02.14
오라클 비긴즈 05 ( JOIN )  (0) 2023.02.10
오라클 비긴즈 04 ( GROUP BY절 , GROUPING SETS , ROLLUP )  (0) 2023.02.09
오라클 비긴즈 03 ( VIEW )  (0) 2023.02.07
''국비지원'의 시작' 카테고리의 다른 글
  • 오라클 비긴즈 08 ( Constraints ( 제약 ) )
  • 오라클 비긴즈 07 ( SQL (Structure Query Language) )
  • 오라클 비긴즈 05 ( JOIN )
  • 오라클 비긴즈 04 ( GROUP BY절 , GROUPING SETS , ROLLUP )
개발할 결심
개발할 결심
백엔드와 프론트엔드의 조화를 이루는 프론트엔드 개발자 입니다.
개발할 결심
개발할 결심
개발할 결심
전체
오늘
어제
  • 분류 전체보기
    • '국비지원'의 시작
    • '취준' 시작

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 국비지원학원
  • fetcting data with Effects
  • 개발자
  • 이뮤터블 메서드
  • 자바
  • 비전공자
  • SQL
  • 프론트엔드
  • 자바스크립트
  • Java
  • 비동기
  • 생성자의오버로딩
  • 국비it학원
  • 백엔드
  • 수동적X
  • react
  • 국비지원
  • 쌍용강북교육센터
  • 오라클
  • 리액트

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
개발할 결심
오라클 비긴즈 06 ( Set Operator [ UNION ] )
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.