union.sql & minus.sql & intersect.sql

성혜·2024년 2월 20일
0

Oracle

목록 보기
19/26
post-thumbnail

유니온, union

: 테이블과 테이블을 합치는 연산
: 스키마가 동일한 결과셋끼리 가능


  • 실습 코드
--레코드끼리 합쳐줌
select * from tblMen
union
select * from tblWomen;

-- SNS > 다량의 데이터 > 하나의 테이블 > 기간별 테이블 분할 
select * from 게시판2022;
select * from 게시판2023;
select * from 게시판2024;

--통합 데이터 관리
select * from
    (select * from 게시판2022;
    union
    select * from 게시판2023;
    union
    select * from 게시판2024;
    union) 
    where 조건;

📌 union, union all의 차이점

create table tblAAA (
    name varchar2(30) not null,
    color varchar2(30) not null
);

create table tblBBB (
    name varchar2(30) not null,
    color varchar2(30) not null
);

insert into tblAAA values ('강아지','검정');
insert into tblAAA values ('고양이','노랑');
insert into tblAAA values ('토끼','갈색');
insert into tblAAA values ('거북이','녹색');
insert into tblAAA values ('강아지','회색');

insert into tblBBB values ('강아지','검정');
insert into tblBBB values ('고양이','노랑');
insert into tblBBB values ('호랑이','주황');
insert into tblBBB values ('사자','회색');
insert into tblBBB values ('고양이','검정');
-- union > 수학의 집합 > 중복 제거
select * from tblAAA
union
select * from tblBBB; --8개

-- union all > 중복 허용
select * from tblAAA
union all
select * from tblBBB; --10개

📌 구조가 다르면 에러

-- ORA-01789: 질의 블록은 부정확한 수의 결과 열을 가지고 있습니다.
select * from tblInsa
union 
select * from tblTodo;


마이너스, minus

: 테이블과 테이블을 빼는 연산 (차집합)
: 어느 테이블에서 어느 테이블을 빼는 순서에 따라 결과셋이 다름

  • 실습 코드
select * from tblAAA
minus
select * from tblBBB; -- A-B

select * from tblBBB
minus
select * from tblAAA; --B-A



인터섹트, intersect

: 테이블과 테이블의 공통부분을 출력하는 연산 (교집합)


  • 실습 코드
select * from tblAAA
intersect
select * from tblBBB; --2개

profile
하루를 정리하고 기록합니다.

0개의 댓글