Oracle 문법 정리 - 집합 연산자
◆집합 연산자
먼저 실행
--set_a테이블 생성 create table set_a( a number(5) ); -------1,2,3,4,5,6 삽입 --------- insert into set_a values(1); insert into set_a values(2); insert into set_a values(3); insert into set_a values(4); insert into set_a values(5); insert into set_a values(6); --set_b테이블 생성 create table set_b( a number(5) ); -------4,5,6,7,8,9 삽입 ---------
insert into set_b values(4); insert into set_b values(5); insert into set_b values(6); insert into set_b values(7); insert into set_b values(8); insert into set_b values(9); |
1)union = 합집합
:합집합이지만 중복된 부부은 제거가 되있는
*쿼리에서 select 문으로 선택된 열의 개수와 데이터 유형은 동일해야 한다.
*이름은 같지 않아도 된다.
*null은 중복 검사 시 무시되지 않습니다.
select * from set_a union select * from set_b |
select employee_id, job_id,salary from employees union select employee_id, job_id,0 from job_history; |
2)union all =
:합집합이지만 중복된 부분도 그대로 출력 (union보다 빠르다)
select * from set_a union all select * from set_b |
3)intersect = 교집합
:테이블간의 중복되는만 부분 출력
*쿼리에서 select 문으로 선택된 열의 개수와 데이터 유형은 동일해야 한다.
*이름은 같지 않아도 된다.
*null은 무시되지 않습니다.
select * from set_a intersect select * from set_b |
4)minus = 차집합
:현재 테이블에서 비교 테이블과 중복된 부분을 제거한 데이터를 출력
*쿼리에서 select 문으로 선택된 열의 개수와 데이터 유형은 동일해야 한다.
*이름은 같지 않아도 된다.
select * from set_a minus select * from set_b |