언어/Database

조인연습

NIGHT_LOVE 2020. 5. 8. 17:27

select * from dept;

select * from member;

SELECT dept.dept_name,member.name

FROM DEPT,MEMBER

where dept.dept_id=member.dept_id;

select t.dept_name ,s.name

from member s, dept t

where s.dept_id=t.dept_id;

--ansi

select t.dept_name ,s.name

from member s inner join dept t

on s.dept_id=t.dept_id;

--outer join

select s.dept_name,t.name

from dept s left outer join member t

on s.dept_id=t.dept_id;

--right outer join

select s.dept_name,t.name

from dept s right outer join member t

on s.dept_id=t.dept_id;

--right outer join

select s.dept_name,t.name

from dept s , member t

where s.dept_id=t.dept_id(+);

--부서가 총무부인 사원의 이름을 출력하세요

select t.name from dept s, member t

where s.dept_id=t.dept_id

and s.dept_name='총무부';

--self join

select s.name,t.name

from member s, member t

where s.member_id=t.mgr;

select s.name,t.name

from member s left outer join member t

on s.member_id=t.mgr;

select * from dept;

select * from member;

--7. 영업부 부서에서 근무하는 모든 직원의 이름, 직위, 부서번호, 부서이름을 표시 하십시오.

select m.name, m.jikwi,m.dept_id,d.dept_name

from dept d, member m

where d.dept_id=m.dept_id

and d.dept_name='영업부';

--8. 직원의 이름, 사번, 관리자 이름, 사번을 표시 하십시오.

select w.name,w.member_id,m.name ,m.member_id

from member w, member m

where w.mgr =m.member_id;

--9. 관리자가 지정되지 않은 직원도 포함하여 직원의 이름, 사번, 관리자 이름, 관리자의 사번을 표시 하십시오.

--(관리자가 지정되지 않은 경우 관리자의 이름과 사번은 ‘없음’으로 표시하세요)

select w.name,w.member_id,

nvl(m.name,'없음'),nvl(to_char(m.member_id),'없음')

from member w, member m

where w.mgr =m.member_id(+);

--10. 관리자 보다 먼저 입사한 모든 직원의 이름, 입사일, 관리자 이름, 관리자 입사일을 표시 하십시오.

select w.name,w.member_id,m.name ,m.member_id, m.hire

from member w, member m

where w.mgr =m.member_id

and w.hire<m.hire;

--11. 보너스를 받는 직원의 이름, 부서 번호, 부서 이름을 표시 하십시오.

select m.name,m.dept_id,d.dept_name

from dept d, member m

where m.dept_id=d.dept_id

and m.bonus is not null;