728x90
★ 관계 대수 연산
- 셀렉션 > select where
- 프로젝션 > select column
- 조인 > a join b
- 합집합, 차집합, 교집합
★ 집합
- union = 합집합
- intersect = 교집합
- minus = 차집합
■ 사용 ex)
- ex1)
select * from tblMen
union
select * from tblWomen;
- ex2) 게시판에 대한 ex)
select * from 영업부게시판; -- 천만 건
select * from 총무부게시판; --2천만 건
select * from 개발부게시판; -- 천만 건
select * from 영업부게시판
union
select * from 총무부게시판
union
select * from 개발부게시판;
- ex3) SNS > 게시물 > 년도별로 > ex)
select * from 게시판2020;
select * from 게시판2021;
select * from 게시판2022;
select * from 게시판2023;
select * from 게시판2020
union
select * from 게시판2021
union
select * from 게시판2022
union
select * from 게시판2023 where 검색;
- 주의 할점!!
- 조건1 > 스키마가 동일해야 한다.
- 조건2 > 데이터 성질도 동일해야 한다.
- ex4) 오류 발생 -> 해결
select * from tblCountry -- 5개의 컬럼
union
select * from tblInsa; -- 10개의 컬럼
-- 오류가 발생함. 두 테이블의 컬럼의 수가 같지 않아서..
-- 해결방법 1
select name, capital, population from tblCountry
union
select name, buseo, basicpay from tblInsa;
-- 오류는 발생 하지 않지만, 두 데이터의 성질이 같지 않음..
-- 데이터가 의미가 없는 데이터(형편없는 데이터)가 생성됨. 억지로 끼워넣기..
- ex5) 같은 성질의 테이블의 합집합, 교집합, 차집합
- 테이블 생성
create table tblUnionA (
name varchar2(30) not null
);
create table tblUnionB (
name varchar2(30) not null
);
insert into tblUnionA values ('강아지'); -- *
insert into tblUnionA values ('고양이'); -- *
insert into tblUnionA values ('토끼');
insert into tblUnionA values ('거북이');
insert into tblUnionA values ('병아리');
insert into tblUnionB values ('호랑이');
insert into tblUnionB values ('사자');
insert into tblUnionB values ('강아지'); -- *
insert into tblUnionB values ('코끼리');
insert into tblUnionB values ('고양이'); -- *
select * from tblUnionA;
select * from tblUnionB;
- 1. 합집합(중복값을 허용 X) => UNION
-- union >> 수학 집합의 개념 > 합집합 > 중복값 허용 X
select * from tblUnionA
union
select * from tblUnionB;
- 2. 합집합(중복값을 허용O) => UNION ALL
-- union all > 중복값 허용O
select * from tblUnionA
union all
select * from tblUnionB;
- 3. 교집합 => INTERSECT
-- intersect > 교집합
select * from tblUnionA
intersect
select * from tblUnionB;
- 4. 차집합 => MINUS
-- minus > 차집합
select * from tblUnionA
minus
select * from tblUnionB;
select * from tblUnionB
minus
select * from tblUnionA;
728x90
'데이터베이스' 카테고리의 다른 글
DATABASE STEP 25 - PSEUDO (0) | 2023.03.22 |
---|---|
DATABASE STEP 24 - ALTER (0) | 2023.03.22 |
DATABASE STEP 22 - VIEW (0) | 2023.03.22 |
DATABASE STEP 21 - JOIN (2) | 2023.03.21 |
DATABASE STEP 20 - RDBMS&Foreign key (0) | 2023.03.21 |