본문 바로가기

교육

SQL Union / Merge / Subquery 명령어 요약

반응형



< Union : 구조가 일치하는 2개 이상의 테이블 자료 합치는 것 >

-- 고객을 관리하는 직원 목록 출력

select sawon_no, sawon_name from sawon

where sawon_no in(select sawon_no from sawon);


select sawon_no, sawon_name from sawon

where sawon_no in(select sawon_no from sawon intersect select gogek_damsano from gogek);


-- 고객을 관리하지 않는 직원 목록 출력

select sawon_no, sawon_name from sawon

where sawon_no in(select sawon_no from sawon minus

select gogek_damsano from gogek);


< merge : 구조가 일치하는 2개 이상의 테이블 자료를 하나로 합치기 >

create table msa1 as select sawon_no, sawon_name, sawon_pay from sawon where sawon_no <= 10; -- 이미 있는 테이블을 활용하여 새로운 테이블 작성


create table msa2 as select sawon_no, sawon_name, sawon_pay from sawon where sawon_no <= 10 and sawon_jik='사원';

select * from msa2;


insert into msa1 values(100, '김밥', 8000);

insert into msa2 values(200, '김밥', 6700);


select * from msa1;

select * from msa2;


merge into msa1 a using msa2 b on(a.sawon_no = b.sawon_no)

when matched then update set a.sawon_name = b.sawon_name,

a.sawon_pay = b.sawon_pay

when not matched then insert values(b.sawon_no,b.sawon_name,

b.sawon_pay);


select * from msa1;


< subquery : 질의 속에 질의가 있는 형태(안쪽 질의의 결과를 바깥쪽에서 참조) >

-- 직원중 이순신과 직급이 같은 자료 출력

select * from sawon;

select * from sawon where sawon_jik='과장';

select * from sawon where sawon_jik=(select sawon_jik from sawon where sawon_name='이순신');


-- 직급이 대리 중에 가장 먼저 입사한 자료는?

select min(sawon_ibsail) from sawon where sawon_jik='대리';

select * from sawon where sawon_ibsail='10/11/4';


select * from sawon

where sawon_ibsail=(select min(Sawon_ibsail) from sawon

where sawon_jik='대리'); -- 잘못된 예시 10.11.4에 입사한 모든 직원이 대상


select * from sawon

where sawon_jik='대리' and

sawon_ibsail=(select min(sawon_ibsail)from sawon

where sawon_jik='대리'); -- 옳음


-- 담당 직원이 '한국남'인 고객 자료 출력

select * from gogek where gogek_damsano=(select

sawon_no from sawon where sawon_name='한국남');



'교육' 카테고리의 다른 글

강남 빅데이터학원 추천 및 소개  (0) 2018.06.22
SQL transaction, view 요약  (0) 2018.06.21
SQL subquery 연습문제  (0) 2018.06.12
서울 자바학원 여기서 배우자  (0) 2018.06.08
SQL 내장함수 알아보기  (0) 2018.06.08