1
1. emp 테이블에서 job이 'MANAGER'이고 HIREDATE(입사일)이 1981년 5월이후인 사람의 모든 항목(칼럼)을 검색하세요.
SELECT * FROM EMP
WHERE JOB = 'MANAGER'
AND HIREDATE >= '81/05/01';
2.사원이름에 'N'이 들어가는 모든 사람을 검색하세요.
SELECT * FROM EMP
WHERE ENAME LIKE '%N%';
3.부서번호가 20번이거나 30번 사람중 JOB이 SALESMAN 인 사람을 검색하세요.
SELECT * FROM EMP
WHERE JOB = 'SALESMAN'
AND DEPTNO IN (20, 30);
4.사원번호가 7600번 이상이고, 월급이 2000 이상인 사람을 검색하세요.
SELECT * FROM EMP
WHERE EMPNO>=7600
AND SAL>=2000;
5.사원이름이 KING 인 사람의 JOB과 입사일을 검색하세요.
SELECT JOB, HIREDATE FROM EMP
WHERE ENAME = 'KING';
6.JOB이 SALESMAN이고 COMM이 널이 아닌 사원의 이름과 부서번호(DEPTNO)를 검색하세요.
SELECT ENAME, DEPTNO FROM EMP
WHERE JOB = 'SALESMAN'
AND COMM IS NOT NULL;
7.사원의 이름을 내림차순 정렬하세요.
SELECT ENAME FROM EMP
ORDER BY ENAME DESC;
8,1981년 1월 1일 이후에 입사한 사원의 이름과 JOB을 검색하세요.
SELECT ENAME, JOB FROM EMP
WHERE HIREDATE >='81/01/01';
2
1. 임금의 평균을 구하되 소숫점 이하 자리는 버리세요.
SELECT TRUNC(AVG(SAL),0) "AVG"
FROM EMP;
2 월급이 가장 많은 월급과 가장 적은 월급. 그리고 월급 차를 구하세요.
SELECT MAX(SAL) AS MAX MIN(SAL) AS MIN MAX(SAL)-MIN(SAL) AS "MINUS" MINUS
FROM EMP;
3.직업(JOB)별로 월급(SAL)의 평균을 구하세요.
SELECT JOB, AVG(SAL)
FROM EMP
GROUP BY JOB;
4.부서(DEPTNO)별로 임금 (SAL)의 합계를 구하되 합계가 10,000 이상인
부서의 부서와 합계를 구하세요.
SELECT DEPTNO, SUM(SAL)
FROM EMP
GROUP BY DEPTNO
HAVING SUM(SAL) >=10000;
3
사원들의 이름,부서번호,부서이름 출력
SELECT EMP.ENAME, EMP.DEPTNO, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
부서번호가 30번인 사원들의 이름,직급,부서번호,부서위치 출력
SELECT EMP.ENAME, EMP.JOB, DEPT.DEPTNO, DEPT.LOC
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND DEPT.DEPTNO = 30;
커미션을 받는 사원의 이름,커미션,부서이름 및 부서위치를 출력
SELECT EMP.ENAME, EMP.COMM, DEPT.DNAME, DEPT.LOC
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND EMP.COMM IS NOT NULL AND EMP.COMM NOT IN(0);
'DALLAS'에서 근무하는 사원의 이름,직급, 부서번호,부서이름
SELECT EMP.ENAME, EMP.JOB, DEPT.DEPTNO, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO=DEPT.DEPTNO
AND DEPT.LOC = 'DALLAS';
이름에 A가 들어가는 사원들의 이름과 부서이름
SELECT EMP.ENAME, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND EMP.ENAME LIKE '%A%';
사원이름과 직급,급여,급여등급
SELECT EMP.ENAME, EMP.JOB, EMP.SAL, SALGRADE.GRADE
FROM EMP, SALGRADE
WHERE EMP.SAL BETWEEN SALGRADE.LOSAL AND SALGRADE.HISAL;
//
SELECT E.ENAME, E.JOB,E.SAL, S.GRADE
FROM EMP E, SALGRADE S
WHERE E.SAL >= S.LOSAL AND E.SAL <= S.HISAL
사원이름, 부서번호와 해당 사원과 같은 부서에서 근무하는 사원
SELECT EMP.ENAME, EMP.DEPTNO, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
ORDER BY DEPT.DNAME;
(SELF JOIN)
//
select a.ename,a.deptno,b.ename,b.deptno
from emp a,EMP b
where a.deptno = b.deptno
ORDER BY A.Ename;
4
2.사원이름과,급여,입사일을 검색하세요.
SELECT DNAME, SAL, HIREDATE FROM EMP;
3.부서 번호를 한 번씩만 출력되도록 검색하세요.
SELECT DISTINCT DEPTNO FROM DEPT;
4.라인사이지즈를 120으로 세팅하세요.
SET LINESIZE 120;
5."FORD"의 사원 번호와, 이름, 부서번호를 검색하세요.
SELECT EMPNO, ENAME, DEPTNO FROM EMP WHERE ENAME = 'FORD';
6.이름에 "S"가 들어가는 사원의 사원 번호와 이름,부서번호를 검색하세요.
SELECT EMPNO, ENAME, DEPTNO FROM EMP WHERE ENAME LIKE '%S%';
7.이름에 "R"이 들어가고 급여가 3000이상인 사람의 이름과,직급을 검색하세요
SELECT ENAME, JOB, SAL
FROM EMP
WHERE ENAME LIKE '%R%'
AND SAL >=3000;
8.'XXXI LOVE YOUXXX' 에서 'X'를 삭제하고 출력하세요.
SELECT TRIM('X' FROM 'XXXI LOVE YOUXXX')
FROM DUAL
9.사원별로 이름과,직급,연봉(급여에 커미션을 더한 값)을 검색하세요.
SELECT ENAME, JOB, SAL*12+NVL(COMM,0)
FROM EMP
10. EMP 테이블의 행의 갯수를 검색하세요.
SELECT COUNT(*)
FROM EMP
11.부서 번호와 부서별 연봉 평균을 구하세요.
SELECT DEPTNO, AVG(SAL)
FROM EMP
GROUP BY DEPTNO
12.부서번호가 20번인 사원들의 이름, 직급, 부서번호, 부서위치(지역)을 검색하세요.
SELECT E.ENAME, E.JOB, D.LOC, E.DEPTNO
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND E.DEPTNO=20
13. 직급이 'ANALYST' 인 사람의 부서번호, 부서이름, 지역을 출력하세요.
SELECT E.JOB, D.DEPTNO, D.DNAME,D. LOC
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND JOB='ANALYST'