-
오라클 - 기초 연습 문제 모음 & 문제풀이web coding/Oracle 2022. 3. 11. 00:50
[ 문제 ]
1. emp 테이블에서 사원번호, 사원 이름, 월급을 출력하시오.
2. emp 테이블에서 사원이름과 월급을 출력하는데 칼럼명은 이 름, 월 급으로 바꿔서 출력하시오.
3. emp 테이블에서 사원번호, 사원이름, 월급, 연봉을 구하고 각각 칼럼명은 사원번호, 사원 이름, 월급, 연봉으로 출력하시오.
4. emp 테이블의 업무(job)를 중복되지 않게 표시하시오.
5. emp 테이블의 사원명과 업무로 연결(SMITH, CLERK)해서 표시하고 컬럼명은 Employee and Job으로 표시하시오.
6. emp 테이블에서 사원번호가 7698 인 사원의 이름, 업무, 급여를 출력하시오.
7. emp 테이블에서 사원이름이 SMITH인 사람의 이름과 월급, 부서 번호를 구하시오.
8. 월급이 2500이상 3500 미만인 사원의 이름, 입사일, 월급을 구하시오.
9. 급여가 2000에서 3000사이에 포함되지 않는 사원의 이름, 업무, 급여를 출력하시오.
10. 81년 05월 01일과 81년 12월 03일 사이에 입사한 사원의 이름, 급여, 입사일을 출력하시오.
11. emp테이블에서 사원번호가 7566,7782,7934인 사원을 제외한 사람들의 사원번호, 이름, 월급을 출력하시오.
12. 부서번호 30(deptno)에서 근무하며 월 2,000달러 이하를 받는 81년 05월 01일 이전에 입사한 사원의 이름, 급여, 부서 번호, 입사일을 출력하시오.
13. emp테이블에서 급여가 2,000와 5,000 사이고 부서번호가 10 또는 30인 사원의 이름과 급여, 부서 번호를 나열하시오.
14. 업무가 SALESMAN 또는 MANAGER이면서 급여가 1,600, 2,975 또는 2,850이 아닌 모든 사원의 이름, 업무 및 급여를 표시하시오.
15. emp테이블에서 사원이름 중 S가 포함되지 않은 사람들 중 부서 번호가 20인 사원들의 이름과 부서 번호를 출력하시오.
16. emp테이블에서 이름에 A와 E가 있는 모든 사원의 이름을 표시하시오.
17. emp테이블에서 관리자가 없는 모든 사원의 이름과 업무를 표시하시오.
18. emp테이블에서 커미션 항목이 입력된 사원들의 이름과 급여, 커미션을 구하시오.
19. 급여가 $1,500부터$3,000 사이의 사원에 대해서만 급여의 15%를 회비로 지불하기로 하였다.
20. 사원의 이름, 급여, 커미션, 총액(급여+커미션)을 구하여 총액이 많은 순서로 출력하시오.
21. 이름의 글자수가 6자 이상인 사원의 이름을 앞에서 3자만 구하여 소문자로 이름만 출력하시오.
22. 모든 사원에 대해 사원의 이름은 앞에서 세 글자만 대문자로, 업무는 소문자로 하여 이름, 직무, 부서 번호를 출력하시오.
23. 모든 사원에 대해 사원의 이름과 부서 번호를 합성시켜 "연결 예제"라는 칼럼명으로 출력하시오.
24. 사원의 직무가 'SAL'로 시작하는 사원의 이름과 사원 이름의 길이를 출력하시오.
25. 사원들의 사원 번호와 급여, 커미션,연봉((comm+sal)*12)을 연봉이 많은 순서로 출력하시오.
(단, 커미션이 null인 사원도 0으로 계산하시오)
26. 모든 사원에 대해 사원들의 이름, 급여, 커미션을 급여가 적은 것부터 출력하시오.
(단, 커미션이 없는 사원은 'No Commission'이라는 말이 출력되도록)
27. 'CLERK'은 20%, 'SALESMAN'은 15%, 'ANALYST'는 10%, 'MANAGER'는 5%, 'PRESIDENT'는 0%와 같이 업무에 따라 급여 인상을 다르게 할 경우, 모든 사원들의 이름, 직무, 급여, 인상 후의 급여를 출력하시오.
28. 사원번호가 짝수인 사원들의 모든 정보를 출력하시오.
[ 문제풀이 ]
1. emp 테이블에서 사원번호, 사원 이름, 월급을 출력하시오.
더보기SELECT EMPNO, ENAME, SAL FROM EMP
2. emp 테이블에서 사원이름과 월급을 출력하는데 칼럼명은 이 름, 월 급으로 바꿔서 출력하시오.
더보기SELECT ENAME AS "이 름", SAL AS "월 급" FROM EMP
3. emp 테이블에서 사원번호, 사원이름, 월급, 연봉을 구하고 각각 칼럼명은 사원번호, 사원 이름, 월급, 연봉으로 출력하시오.
더보기SELECT EMPNO AS "사원번호" , ENAME AS "사원이름" , SAL AS "월급" , SAL*12 AS "연봉" FROM EMP
4. emp 테이블의 업무(job)를 중복되지 않게 표시하시오.
더보기SELECT DISTINCT JOB FROM EMP
5. emp 테이블의 사원명과 업무로 연결(SMITH, CLERK)해서 표시하고 컬럼명은 Employee and Job으로 표시하시오.
더보기SELECT ENAME||', '|| JOB AS "Employee and Job" FROM EMP -- SELECT CONCAT(CONCAT(ENAME, ', '), JOB) AS "Employee and Job" FROM EMP
6. emp 테이블에서 사원번호가 7698 인 사원의 이름, 업무, 급여를 출력하시오.
더보기SELECT ENAME, JOB, SAL FROM EMP WHERE EMPNO IN ('7698')
7. emp 테이블에서 사원이름이 SMITH인 사람의 이름과 월급, 부서 번호를 구하시오.
더보기SELECT ENAME, SAL, DEPTNO FROM EMP WHERE ENAME IN ('SMITH')
8. 월급이 2500이상 3500 미만인 사원의 이름, 입사일, 월급을 구하시오.
더보기SELECT ENAME, HIREDATE, SAL FROM EMP WHERE SAL<3500 AND SAL>=2500
9. 급여가 2000에서 3000사이에 포함되지 않는 사원의 이름, 업무, 급여를 출력하시오.
더보기SELECT ENAME, JOB, SAL FROM EMP WHERE SAL NOT BETWEEN 2000 AND 3000
10. 81년 05월 01일과 81년 12월 03일 사이에 입사한 사원의 이름, 급여, 입사일을 출력하시오.
더보기SELECT ENAME, SAL, HIREDATE FROM EMP WHERE HIREDATE BETWEEN '1981-05-01' AND '1981-12-03'
11. emp테이블에서 사원번호가 7566,7782,7934인 사원을 제외한 사람들의 사원번호, 이름, 월급을 출력하시오.
더보기SELECT EMPNO, ENAME, SAL FROM EMP WHERE EMPNO NOT IN (7566, 7782, 7934)
12. 부서번호 30(deptno)에서 근무하며 월 2,000달러 이하를 받는 81년 05월 01일 이전에 입사한 사원의 이름, 급여, 부서 번호, 입사일을 출력하시오.
더보기SELECT * FROM EMP WHERE DEPTNO IN (30) AND SAL <= (2000) AND HIREDATE < '1981-05-01'
13. emp테이블에서 급여가 2,000와 5,000 사이고 부서번호가 10 또는 30인 사원의 이름과 급여, 부서 번호를 나열하시오.
더보기SELECT ENAME, SAL, DEPTNO FROM EMP WHERE (SAL BETWEEN 2000 AND 5000) AND DEPTNO IN (10, 30)
14. 업무가 SALESMAN 또는 MANAGER이면서 급여가 1,600, 2,975 또는 2,850이 아닌 모든 사원의 이름, 업무 및 급여를 표시하시오.
더보기SELECT ENAME, JOB, SAL FROM EMP WHERE JOB IN ('SALESMAN', 'MANAGER') AND SAL NOT IN (1600, 2975, 2850)
15. emp테이블에서 사원이름 중 S가 포함되지 않은 사람들 중 부서 번호가 20인 사원들의 이름과 부서 번호를 출력하시오.
더보기SELECT ENAME, DEPTNO FROM EMP WHERE ENAME NOT LIKE '%S%' AND DEPTNO IN (20)
16. emp테이블에서 이름에 A와 E가 있는 모든 사원의 이름을 표시하시오.
더보기SELECT ENAME FROM EMP WHERE ENAME LIKE '%A%' AND ENAME LIKE '%E%'
17. emp테이블에서 관리자가 없는 모든 사원의 이름과 업무를 표시하시오.
더보기SELECT ENAME, JOB FROM EMP WHERE MGR IS NULL
18. emp테이블에서 커미션 항목이 입력된 사원들의 이름과 급여, 커미션을 구하시오.
더보기SELECT ENAME, SAL, COMM FROM EMP WHERE COMM IS NOT NULL
19. 급여가 $1,500부터$3,000 사이의 사원에 대해서만 급여의 15%를 회비로 지불하기로 하였다. 조건에 해당되는 사원의 이름,급여,회비(소수이하 2자리까지 반올림)를 출력하시오.
더보기SELECT ENAME, SAL, SAL*0.15 FROM EMP WHERE SAL BETWEEN 1500 AND 3000
20. 사원의 이름, 급여, 커미션, 총액(급여+커미션)을 구하여 총액이 많은 순서로 출력하시오.
더보기SELECT ENAME, SAL, NVL(COMM, 0) , SAL+NVL(COMM, 0) AS "총액" FROM EMP ORDER BY "총액" DESC
21. 이름의 글자수가 6자 이상인 사원의 이름을 앞에서 3자만 구하여 소문자로 이름만 출력하시오.
더보기SELECT LOWER(SUBSTR (ENAME, 1, 3)) FROM EMP WHERE LENGTH(ENAME)>=6
22. 모든 사원에 대해 사원의 이름은 앞에서 세 글자만 대문자로, 업무는 소문자로 하여 이름, 직무, 부서 번호를 출력하시오.
더보기SELECT SUBSTR(ENAME,1,3) || LOWER(SUBSTR(ENAME,4)), LOWER(JOB), DEPTNO FROM EMP
23. 모든 사원에 대해 사원의 이름과 부서 번호를 합성시켜 "연결 예제"라는 칼럼명으로 출력하시오.
더보기SELECT ENAME || DEPTNO AS "연결 예제" FROM EMP
24. 사원의 직무가 'SAL'로 시작하는 사원의 이름과 사원 이름의 길이를 출력하시오.
더보기SELECT ENAME, LENGTH(ENAME) FROM EMP WHERE JOB LIKE 'SAL%'
25. 사원들의 사원 번호와 급여, 커미션,연봉((comm+sal)*12)을 연봉이 많은 순서로 출력하시오.
(단, 커미션이 null인 사원도 0으로 계산하시오)
더보기SELECT EMPNO, SAL, NVL(COMM, 0) , (NVL(COMM, 0)+SAL)*12 AS SAL2 FROM EMP ORDER BY SAL2 DESC
26. 모든 사원에 대해 사원들의 이름, 급여, 커미션을 급여가 적은 것부터 출력하시오.
(단, 커미션이 없는 사원은 'No Commission'이라는 말이 출력되도록)
더보기SELECT ENAME, SAL , NVL(TO_CHAR(COMM), 'No Commission') AS COMM2 FROM EMP ORDER BY COMM2 ASC
27. 'CLERK'은 20%, 'SALESMAN'은 15%, 'ANALYST'는 10%, 'MANAGER'는 5%, 'PRESIDENT'는 0%와 같이 업무에 따라 급여 인상을 다르게 할 경우, 모든 사원들의 이름, 직무, 급여, 인상 후의 급여를 출력하시오.
더보기SELECT ENAME , JOB , SAL , CASE JOB WHEN 'CLERK' THEN SAL*1.2 WHEN 'SALESMAN' THEN SAL*1.15 WHEN 'ANALYST' THEN SAL*1.1 WHEN 'MANAGER' THEN SAL*1.05 ELSE SAL END AS SAL_UP FROM EMP
28. 사원번호가 짝수인 사원들의 모든 정보를 출력하시오.
더보기SELECT * FROM EMP WHERE MOD(EMPNO, 2) = 0
'web coding > Oracle' 카테고리의 다른 글
오라클 - 데이터 조회 연습 문제 & 문제풀이 (0) 2022.03.11 오라클 - 기초 (0) 2022.03.10 오라클 데이터 타입 & SQL문 종류 (0) 2022.03.10 오라클 연습 사이트 - Oracle Live SQL (0) 2022.03.07