Presentation is loading. Please wait.

Presentation is loading. Please wait.

Quiz #1.

Similar presentations


Presentation on theme: "Quiz #1."— Presentation transcript:

1 Quiz #1

2 EMP 테이블에서 이름의 첫글자가 ‘K’ 보다 크고 ‘Y’보다 적은 사원의 정보를 사원번호, 이름, 업무, 급여, 부서번호를 출력하여라. 단 이름순으로 정렬하여라.
SELECT EMPNO, ENAME, JOB, SAL, DEPTNO FROM EMP WHERE 'K' < SUBSTR(ENAME, 1, 1) AND SUBSTR(ENAME, 1, 1) < 'Y' order by ename;

3 EMP 테이블에서 JOB에 ‘A’를 ‘$’로 바꾸어 출력하여라.
SELECT REPLACE(JOB, 'A', '$') FROM EMP;

4 EMP 테이블에서 30번 부서 사람들의 입사 일자로부터 돌아오는 금요일을 계산하여 출력하여라.
SELECT HIREDATE, NEXT_DAY(HIREDATE, '금요일') FROM EMP WHERE DEPTNO = 30;

5 EMP 테이블에서 20번 부서의 급여 앞에 $를 삽입하고 3자리마다 ,를 출력하여라.
SELECT DEPTNO, TO_CHAR(SAL, '$999,999') FROM EMP WHERE DEPTNO = 20;

6 1981년 2월 22일에 입사한 사원의 정보를 이름, 업무, 입사일자를 출력하여라.
SELECT ENAME, JOB, HIREDATE FROM EMP WHERE HIREDATE = '1981/02/22';

7 각 사원별 시급을 계산하여 부서번호, 사원이름, 시급을 출력하여라.
조건1. 한달 근무일수는 20일, 하루 근무시간은 8시간으로 한다. 조건2. 시급이 많은 순으로 출력. 조건3. 부서별로 정렬. SELECT DEPTNO, ENAME, SAL/20/8 "시급" FROM EMP ORDER BY DEPTNO, "시급" DESC;

8 직원 이름과 연봉 메니저면 연봉의1*1배 인상 CLERK 면 연봉의 1+1.05
SELECT ENAME, JOB, SAL, DECODE(JOB,'MANAGER',SAL*1.1,'CLERK',SAL*1.05,SAL)"UPSAL“ from emp;

9 Emp 테이블에서 입사일이 83/01/12 이후인 사원의 이름, 부서번호, 월급을 출력하라.
alter session set nls_date_format = 'YYYY/MM/DD'; SELECT ename, deptno, sal FROM emp WHERE hiredate >= '1983/01/12';

10 Emp 테이블에서 이름이 S로 시작하고 마지막 글자가 T인 사람의 모든 정보를 출력하라(단, 이름은 전체 5자리이다)
두 번째 문자가 A인 사람의 정보를 출력하라. SELECT * FROM emp WHERE ename like ‘S___T’; SELECT * FROM emp WHERE ename like ‘_A%’;

11 EMP Table에서 이름, 급여, 커미션 금액, 총액(sal + comm)을 구하여 총액이 많은 순서로 출력하라
EMP Table에서 이름, 급여, 커미션 금액, 총액(sal + comm)을 구하여 총액이 많은 순서로 출력하라. 단, 커미션이 NULL인 사람은 제외한다. SELECT ename, sal, comm, sal +comm Total FROM emp WHERE comm Is not null ORDER BY total desc;

12 입사일부터 지금까지의 날짜수를 출력하라. 부서번호, 이름, 입사일, 현재일, 근무일수(소수점 이하 절삭), 근무년수, 근무월수(30일 기준), 근무주수를 출력하라.
SELECT ENAME, HIREDATE "입사일자" , SYSDATE "현재날짜" , FLOOR(MONTHS_BETWEEN(SYSDATE, HIREDATE)/12) "년", FLOOR(MONTHS_BETWEEN(SYSDATE, HIREDATE)) "월", FLOOR(MONTHS_BETWEEN(SYSDATE, HIREDATE)*7) "주", TRUNC(SYSDATE-HIREDATE) "일" FROM EMP;

13 Emp에서 이름의 글자수가 6자 이상인 사람의 이름을 앞에서 3자만 구하여 소문자로 이름만을 출력하라.
SELECT lower(substr(ename, 1, 3)) FROM emp WHERE length(ename) >= 6;

14 Quiz #2

15 Emp에서 각 부서별 같은 업무를 하는 사람의 인원수를 구하여 부서번호, 업무명, 인원수를 출력하라.
SELECT deptno, job, count(*) FROM emp GROUP BY deptno, job;

16 EMP 테이블에서 모든 SALESMAN에 대하여 급여의 평균, 최고액, 최저액, 합계를 구하여 출력하여라.
SELECT JOB, AVG(SAL), MAX(SAL), MIN(SAL), SUM(SAL) FROM EMP WHERE JOB = 'SALESMAN' GROUP BY JOB;

17 EMP 테이블에서 부서별로 인원수, 평균 급여, 최저급여, 최고 급여, 급여의 합을 구하여 출력하여라.
SELECT COUNT(ENAME), AVG(SAL), MIN(SAL), MAX(SAL), SUM(SAL) FROM EMP GROUP BY DEPTNO;

18 EMP 테이블에서 전체 월급이 5000을 초과하는 각 업무에 대해서 업무와 월급여 합계를 출력하여라
SELECT JOB, SUM(SAL) AS SUM_SAL FROM EMP E1 WHERE NOT JOB LIKE 'SALESMAN' GROUP BY JOB HAVING SUM(SAL) > 5000 ORDER BY SUM_SAL DESC;

19 EMP 테이블에서 사원번호가 7521의 업무와 같고 급여가 7934보다 많은 사원의 정보를 사원번호, 이름, 담당업무, 입사일자, 급여, 부서이름을 출력하여라.
SELECT E.EMPNO, E.ENAME, E.JOB, E.HIREDATE, E.SAL, D.DNAME FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.JOB = (SELECT JOB FROM EMP WHERE EMPNO='7521') AND E.SAL > (SELECT SAL WHERE EMPNO='7934')

20 업무별로 최소 급여를 받는 사원의 정보를 사원번호, 이름, 업무, 부서번호를 출력하여라. 단 업무별로 정렬하여라.
SELECT EMPNO, ENAME, JOB, DEPTNO FROM EMP WHERE (JOB, SAL) IN (SELECT JOB, MIN(SAL) GROUP BY JOB)

21 각 사원별 보너스가 0 또는 NULL이고 부서위치가 ‘GO’로 끝나는 사원의 정보를 사원번호, 사원이름, 보너스, 부서번호, 부서명, 부서위치를 출력하여라. 단 보너스가 NULL이면 0으로 출력하여라. SELECT E.EMPNO, E.ENAME, NVL(E.COMM, 0), E.DEPTNO, D.DNAME, D.LOC FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO AND (E.COMM IS NULL OR E.COMM=0) AND D.LOC LIKE '%GO'

22 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.JOB NOT IN(SELECT JOB FROM EMP WHERE DEPTNO=30);

23 'JONES'가 속해있는 부서의 모든 사람의 사원번호, 이름, 입사일, 급여를 출력하라.
SELECT EMPNO,ENAME,HIREDATE,SAL FROM EMP WHERE DEPTNO=(SELECT DEPTNO   FROM EMP WHERE ENAME='JONES');

24 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);

25 EMP Table에 있는 EMPNO와 MGR을 이용하여 서로의 관계를 다음과 같이 출력하라. XXX의 매니저는 YYY이다.
SELECT E.ENAME || '의 매니저는' || M.ENAME || '이다.'   FROM EMP E, EMP M  WHERE E.MGR = M.EMPNO ;

26 직업(JOB)별로 최소 급여를 받는 사원의 정보를 사원번호, 이름, 업무, 부서명을 출력하라.
-- 조건1 : 직업별로 내림차순 정렬 select e.empno, e.ename, e.job, d.dname from emp e, dept d where e.deptno = d.deptno and sal IN (select min(sal) from emp group by job) order by job desc

27 각 부서 별 입사일이 가장 오래된 사원을 한 명씩 선별해 사원번호, 사원명, 부서번호, 입사일을 출력하라.
select empno, ename, deptno, hiredate from emp where hiredate IN( select min(hiredate) group by deptno);


Download ppt "Quiz #1."

Similar presentations


Ads by Google