[Oracle] 17.연습문제(1)


연습문제(1)



지금까지 배웠던 개념을 확인하기 위해서 연습 문제 몇 개를 풀어보겠습니다!


  • employees 테이블에 대한 정보를 출력하세요




DESC employees;




image




  • 사번이 홀수인 사람들을 검색




SELECT
    employee_id,
    first_name|| ' '|| last_name "name"
FROM
    employees
WHERE
    mod(employee_id,2) = 1;




image




  • 직급이 ‘IT_PROG’인 사람을 검색 (단, lower 함수 사용)




SELECT
    employee_id,
    first_name|| ' '|| last_name "name",
    job_id
FROM
    employees
WHERE
    lower(job_id) = 'it_prog';




image




  • 08년도 입사한 직원을 검색 (단, substr 함수 사용)




SELECT
    employee_id,
    first_name|| ' '|| last_name "name",
    hire_date
FROM
    employees
WHERE
    substr(hire_date,3,2)='08';




image




  • 이름이 E로 끝나는 사원을 검색




SELECT
    employee_id,
    first_name|| ' '|| last_name "name"
FROM
    employees
WHERE
    substr(last_name,-1,1) = 'e'
    OR substr(first_name,-1,1) = 'e';



또는


SELECT
    employee_id,
    first_name|| ' '|| last_name "name"
FROM
    employees
WHERE
   first_name like '%e' or last_name like '%e';




image




  • 이름 세번째 자리가 R로 끝나는 사원을 검색(와일드 카드 _ , % 사용)




SELECT
    employee_id,
    first_name|| ' '|| last_name "name"
FROM
    employees
WHERE
    last_name LIKE '__r%';




image




  • 각 사원들의 현재까지 근무일 수를 검색




SELECT
	employee_id "사원번호",
    TO_CHAR(hire_date,'YYYY-MM-DD') "입사일",
    TO_CHAR(SYSDATE,'YYYY-MM-DD') "현재일",
    round(SYSDATE - hire_date) "근무일수"
FROM
    employees;




image




  • 직속상관이 없는 사람의 상사번호를 null 대신 CEO를 출력




SELECT
    employee_id "사원번호",
    first_name||' '||last_name "이름",nvl2(manager_id,manager_id || '','ceo') "상사번호"
FROM
    employees
WHERE
    manager_id IS NULL;




image




  • 분기별 입사한 사원의 수를 구하세요.(1분기=3개월)




SELECT
    ceil(TO_CHAR(hire_date,'MM') / 3) AS 분기,
    COUNT(*) AS 입사원수
FROM
    employees
GROUP BY
    ceil(TO_CHAR(hire_date,'MM') / 3)
ORDER BY
    ceil(TO_CHAR(hire_date,'MM') / 3);




image




  • 날짜 데이터에서 월 데이터를 추출하는 방법




SELECT
    hire_date,
    substr(hire_date,6,2),
    TO_CHAR(hire_date,'mm'),
    EXTRACT(MONTH FROM hire_date)
FROM
    employees;




image