본문 바로가기

JAVA 공책/알고리즘 문제

DB(Oracle)_Join_연습문제

--1. EMP 테이블에서 모든 사원에 대한 이름(ename), 부서번호(deptno) DEPT 테이블에서 부서명(dname)을 출력하는 SELECT 문장을 작성

select ename, emp.deptno, dname

from emp, dept


정답.

select ename, emp.deptno, dname

from emp, dept

where emp.deptno = dept.deptno;


--2. DEPT 테이블의 LOC가 NEW YORK에서 근무하고 있는 사원에 대하여 EMP 테이블의 이름(ename), 업무(job), 급여(sal), DEPT 테이블의 부서명(dname)을 출력하는 SELECT 문장을 작성

select ename, job, sal, dname

from emp, dept

where loc = 'NEW YORK';


정답.

select ename, job, sal, dname

from emp, dept

where  emp.deptno = dept.deptno and loc = 'NEW YORK';


--3. EMP 테이블에서 보너스(comm)가 null 이 아닌 사원에 대하여 이름(ename), DEPT 테이블의 부서명(dname), 위치(loc)를 출력하는 SELECT 문장을 작성

select ename, dname, loc

from emp, dnpt

where comm is not null;


정답.

select ename, dname, loc

from emp, dept

where emp.deptno = dept.deptno and comm is not null;


--4. EMP 테이블에서 이름(ename) 중 L자가 있는 사원에 대하여 이름(ename), 업무(job), DEPT 테이블의 부서명(dname), 위치(loc)를 출력하는 SELECT 문장을 작성

select ename, job, dname, loc

from emp, dept

where ename like '%L%';


정답.

select ename, job, dname, loc

from emp, dept

where emp.deptno = dept.deptno and ename like '%L%';


--5. EMP 테이블에서 그들의 관리자(mgr) 보다 먼저 입사한 사원에 대하여 이름(ename), 입사일(hiredate), 관리자(mgr) 이름,  관리자(mgr) 입사일을 출력하는 SELECT 문장을 작성하여라.


정답.

select e1.ename 사원이름, e1.hiredate 입사일, e2.ename 관리자, e2.hiredate 관리자입사일

from emp e1, emp e2

where e1.mgr = e2.empno and e1.hiredate < e2.hiredate;