상세 컨텐츠

본문 제목

SQL union, merge, subquery 명령어 요약

Machine Learning

by 에스프리터 2018. 1. 16. 17:50

본문


< 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='한국남');






본 포스팅은 IT 교육기관인 KIC 캠퍼스의 지원을 받은 리포트입니다.
본문은 '남궁성, JAVA의 정석 3rd Edition' 교재를 공부하면서 주요 내용을 요약하고 있습니다.
혹시 잘못되거나 문제 소지시 댓글 남겨주시면 조치하겠습니다.




태그

관련글 더보기

댓글 영역