[펌글] 오라클 Scott 연습문제

By | 2월 5, 2009

- 출처 : 네이버 지식인 -

1) EMP와 DEPT TABLE을 JOIN하여 부서 번호,  부서명,  이름, 급여를 출력하라.

SELECT D.DEPTNO, D.DNAME, E.ENAME, E.SAL
  FROM EMP E, DEPT D
 WHERE E.DEPTNO = D.DEPTNO

2)이름이 'ALLEN'인 사원의 부서명을 출력하라.

SELECT E.ENAME, D.DNAME
  FROM EMP E, DEPT D
 WHERE E.DEPTNO = D.DEPTNO
   AND E.ENAME = 'ALLEN'
 

3)DEPT Table에 있는 모든 부서를 출력하고, EMP Table에 있는 DATA와 JOIN하여 모든 사원의 이름, 부서번호, 부서명, 급여를 출력하라.

SELECT E.ENAME, D.DEPTNO, D.DNAME, E.SAL
  FROM EMP E, DEPT D
 WHERE E.DEPTNO(+) = D.DEPTNO

4)EMP Table에 있는 EMPNO와 MGR을 이용하여 서로의 관계를 다음과 같이 출력하라.
SMITH의 매니저는 FORD이다.

SELECT E.ENAME || '의 매니저는' || M.ENAME || '이다.'
  FROM EMP E, EMP M
 WHERE E.MGR = M.EMPNO
   AND E.ENAME = 'SMITH'

5)'ALLEN'의 직무와 같은 사람의 이름, 부서명, 급여, 직무를 출력하라.

SELECT E.ENAME, D.DNAME, E.SAL, E.JOB
  FROM EMP E, DEPT D
 WHERE E.DEPTNO = D.DEPTNO
   AND JOB = (SELECT JOB
                FROM EMP
      WHERE ENAME = 'ALLEN')

 
6)'JONES'가 속해있는 부서의 모든사람의 사원번호, 이름, 입사일, 급여를 출력하라.

SELECT EMPNO, ENAME, HIREDATE, SAL
  FROM EMP
 WHERE DEPTNO = (SELECT DEPTNO
                   FROM EMP
      WHERE ENAME = 'JONES')

 
7)전체 사원의 평균임금보다 많은 사원의 사원번호, 이름, 부서명, 입사일, 지역, 급여를출력하라.

SELECT E.EMPNO, E.ENAME, D.DNAME, E.HIREDATE, D.LOC, E.SAL
  FROM EMP E, DEPT D
 WHERE E.DEPTNO = D.DEPTNO
   AND SAL > (SELECT AVG(SAL)
                FROM EMP)
 

8)10번 부서의 사람들중에서 20번 부서의 사원과 같은 업무를 하는 사원의 사원번호, 이름, 부서명, 입사일, 지역을 출력하라.

SELECT E.EMPNO,
       E.ENAME,
    D.DNAME,
    E.HIREDATE,
    D.LOC
  FROM EMP E, DEPT D
 WHERE E.DEPTNO = D.DEPTNO
   AND E.DEPTNO = 10
   AND E.JOB IN (SELECT JOB
                 FROM EMP
    WHERE DEPTNO = 20)

9)10번 부서 중에서 30번 부서에는 없는 임무를 하는 사원의 사원번호, 이름, 부서명, 입사일, 지역을 출력하라.

SELECT E.EMPNO, E.ENAME, D.DNAME, E.HIREDATE, D.LOC
  FROM EMP E, DEPT D
 WHERE E.DEPTNO = D.DEPTNO
   AND E.DEPTNO = 10
   AND E.JOB NOT IN (SELECT JOB
                       FROM EMP
       WHERE DEPTNO = 30)

 
10)10번 부서와 같은 일을 하는 사원의 사원번호, 이름, 부서명, 지역, 급여를 급여가 많은 순으로 출력하라.

SELECT E.EMPNO, E.ENAME, D.DNAME, D.LOC, E.SAL
  FROM EMP E, DEPT D
 WHERE E.DEPTNO = D.DEPTNO
   AND E.DEPTNO != 10
   AND E.JOB IN (SELECT JOB
                 FROM EMP
    WHERE DEPTNO = 10)
 ORDER BY E.SAL DESC

11)'MARTIN'이나 'SCOTT'의 급여와 같은 사원의 사원번호, 이름, 급여를 출력하라.

SELECT EMPNO, ENAME, SAL
  FROM EMP
 WHERE SAL IN (SELECT SAL
                 FROM EMP
    WHERE ENAME IN ('MARTIN', 'SCOTT'))

12)급여가 30번 부서의 최고 급여보다 높은 사원의 사원번호, 이름, 급여를 출력하라.

SELECT EMPNO, ENAME, SAL
  FROM EMP
 WHERE SAL > (SELECT MAX(SAL)
                FROM EMP
      WHERE DEPTNO = 30)
 

13)급여가 30번 부서의 최저 급여보다 높은 사원의 사원번호, 이름, 급여를 출력하라.

SELECT EMPNO, ENAME, SAL
  FROM EMP
 WHERE SAL > (SELECT MIN(SAL)
                FROM EMP
      WHERE DEPTNO = 30)

Subscribe
Notify of
guest
3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
나그네
나그네
13 years ago

10번 문제중에 부서번호 10이아니다라고 하셨는데 수정바랍니다^^

호러블캣
호러블캣
13 years ago

“10번부서와 같은” 이니까 일부러 10번 부서 소속인 사람들은 제외시킨게 아닐까요^^?

세니
세니
7 years ago

SQL 오랜만에 해보니까 재미있네요.