JIMINOTE

[Oracle] OUTER JOIN(외부조인) 본문

데이터베이스/Oracle

[Oracle] OUTER JOIN(외부조인)

김짐인 2020. 8. 30. 16:40

데이터가 없을 수도 있는 쪽 JOIN 컬럼에 (+)를 추가하여 OUTER JOIN이 가능.

 

 

 

1. 급여(SAL)가 2000초과인 사원들의 부서 정보, 사원 정보를 출력해주세요.

select d.deptno, d.dname, e.empno, e.ename, e.sal
from emp e, dept d
where e.deptno=d.deptno and sal>2000;

 

 

2. 각 부서별 평균 급여, 최대급여, 최소급여, 사원수를 출력해 보세요.

select d.deptno, d.dname, trunc(avg(e.sal)) as avg_sal,max(e.sal) as max_sal,
	min(e.sal) as min_sal,
count(e.sal) as cnt
from emp e, dept d
where e.deptno=d.deptno
group by d.deptno, d.dname;



3. 모든 부서 정보와 사원 정보를 부서 번호, 사원 이름수능로 정렬하여 출력해 보세요.

select d.deptno, d.dname, e.empno, e.ename, e.job, e.sal
from emp e, dept d
where e.deptno(+)=d.deptno
order by deptno, ename;



4. 모든 부서정보, 사원 정보, 급여 등급 정보, 각 사원의 직속 상관의 정보를 부서번호, 사원번호 순서로 정렬하여 출력해 보세요.

select d.deptno, d.dname, e1.empno, e1.ename, e1.mgr, e1.sal, d.deptno deptno_1,
	s.losal, s.hisal, s.grade, e2.empno as mgr_empno, e2.ename as mgr_ename
from emp e1, emp e2, dept d, salgrade s
where e1.sal between s.losal(+)
	and s.hisal(+) and e1.mgr = e2.empno(+)
   	and e1.deptno(+)=d.deptno
order by deptno;