2010. 4. 28. 16:25ㆍDatabase/Oracle
JOIN 문 : 물리적으로 분리되어 있는 테이블들의 레코드를 합쳐서
보여줄 수 있는 쿼리문
1.업무(JOB) 가 MANAGER 인 사원의 이름,부서명, 입사일을 출력
SELECT ENAME,DNAME,HIREDATE
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO
AND JOB='MANAGER'
2.사원명이 WARD 인 사원의 급여,부서번호,부서위치,커미션을 출력
SELECT SAL,E.DEPTNO,LOC,COMM
FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND ENAME='WARD'
3.30번 부서에 속하는 사원의 이름, 부서번호,부서위치 를 출력
SELECT ENAME,E.DEPTNO,LOC FROM EMP
E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.DEPTNO=30
4.급여가 1250 을 초과 , 3000이하 인 사원의 이름,급여,부서명을 출력
SELECT ENAME,SAL,DNAME FROM EMP E,DEPT D
WHERE E.DEPTNO=D.DEPTNO AND SAL>1250 AND SAL<=3000
4-2. 급여가 1250 이상 3000 이하(범위가 포함될때는 BETWEEN 사용)
SELECT ENAME,SAL FROM EMP
WHERE SAL BETWEEN 1250 AND 3000;
5.커미션이 0 인 사원의 이름,부서위치, 커미션을 출력
SELECT ENAME,E.DEPTNO,COMM FROM EMP E,DEPT D WHERE
E.DEPTNO=D.DEPTNO AND COMM=0
6.커미션 계약을 하지 않은 사원의 이름,부서명을 출력
SELECT ENAME,DNAME FROM EMP E,DEPT D WHERE
E.DEPTNO=D.DEPTNO AND COMM IS NULL
7.입사일이 81/06/09보다 늦은 사원의 이름,부서위치, 입사일 출력하되,
입사일을 기준으로 오름차순으로 출력하시오
SELECT ENAME,HIREDATE,E.DEPTNO,LOC FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND HIREDATE > '81/06/09' ORDER BY HIREDATE ASC
8.모든 사원의 급여마다 1000을 더한 급여액,사원명,급여,부서명을 출력
SELECT ENAME,SAL+1000,SAL,DNAME FROM EMP E,DEPT D WHERE
E.DEPTNO=D.DEPTNO
9.FORD 의 입사일,부서명을 출력
SELECT HIREDATE,DNAME FROM EMP E,DEPT D WHERE
E.DEPTNO=D.DEPTNO AND ENAME='FORD'
10.사원명이 ALLEN인 사원의 급여,부서번호,부서위치를 출력하세요.
SELECT SAL,E.DEPTNO,LOC FROM EMP E,DEPT D WHERE
E.DEPTNO=D.DEPTNO AND ENAME='ALLEN'
11.ALLEN 의 급여보다 높은 급여를 받는 사원의 사원명 ,부서명,부서위치
급여를 출력하세요
SELECT SAL,ENAME,DNAME,LOC FROM EMP E,DEPT D WHERE
E.DEPTNO=D.DEPTNO AND SAL > (SELECT SAL FROM EMP WHERE ENAME='ALLEN')
12.가장 높은/낮은 커미션을 구하세요.
SELECT MAX(COMM) FROM EMP; --최대값
SELECT MIN(COMM) FROM EMP; --최소값
13.가장 높은 커미션을 받는 사원의 이름,부서명을 구하세요.
SELECT ENAME,DNAME FROM EMP E,DEPT D WHERE
E.DEPTNO=D.DEPTNO AND COMM=(SELECT MAX(COMM) FROM EMP)
14.JOB 이 CLERK 인 사원들의 급여의 합을 구하세요
SELECT SUM(SAL) FROM EMP WHERE JOB='CLERK'
15.JOB 이 CLERK 인 사원들의 급여의 합보다 급여가 많은 사원이름,부서명을
출력하세요
SELECT ENAME,DNAME FROM EMP E,DEPT D WHERE
E.DEPTNO=D.DEPTNO AND SAL > (SELECT SUM(SAL) FROM EMP WHERE JOB='CLERK')
16.JOB이 CLERK인 사원들의 급여와 같은 급여를 받는 사원의 이름,부서명,급여를
출력하되, 급여가 높은 순으로 출력하세요
SELECT ENAME,DNAME,SAL FROM EMP E,DEPT D WHERE
E.DEPTNO=D.DEPTNO AND SAL IN (SELECT SAL FROM EMP WHERE JOB='CLERK')
ORDER BY SAL DESC
17.EMP 테이블의 구조 출력
DESC EMP;
'Database > Oracle' 카테고리의 다른 글
[Oracle] 제약조건 (0) | 2010.04.28 |
---|---|
[Oracle] 쿼리연습4 (0) | 2010.04.28 |
[Oracle] 쿼리연습2 (0) | 2010.04.28 |
[Oracle] 쿼리연습1 (0) | 2010.04.28 |
[Oracle] 오라클 Admin실습1 (0) | 2010.04.28 |