◆집합 연산자



먼저 실행

--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

 

+ Recent posts