[Oracle] 17.연습문제(1)
연습문제(1)
지금까지 배웠던 개념을 확인하기 위해서 연습 문제 몇 개를 풀어보겠습니다!
- employees 테이블에 대한 정보를 출력하세요
DESC employees;
- 사번이 홀수인 사람들을 검색
SELECT
employee_id,
first_name|| ' '|| last_name "name"
FROM
employees
WHERE
mod(employee_id,2) = 1;
- 직급이 ‘IT_PROG’인 사람을 검색 (단, lower 함수 사용)
SELECT
employee_id,
first_name|| ' '|| last_name "name",
job_id
FROM
employees
WHERE
lower(job_id) = 'it_prog';
- 08년도 입사한 직원을 검색 (단, substr 함수 사용)
SELECT
employee_id,
first_name|| ' '|| last_name "name",
hire_date
FROM
employees
WHERE
substr(hire_date,3,2)='08';
- 이름이 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';
- 이름 세번째 자리가 R로 끝나는 사원을 검색(와일드 카드 _ , % 사용)
SELECT
employee_id,
first_name|| ' '|| last_name "name"
FROM
employees
WHERE
last_name LIKE '__r%';
- 각 사원들의 현재까지 근무일 수를 검색
SELECT
employee_id "사원번호",
TO_CHAR(hire_date,'YYYY-MM-DD') "입사일",
TO_CHAR(SYSDATE,'YYYY-MM-DD') "현재일",
round(SYSDATE - hire_date) "근무일수"
FROM
employees;
- 직속상관이 없는 사람의 상사번호를 null 대신 CEO를 출력
SELECT
employee_id "사원번호",
first_name||' '||last_name "이름",nvl2(manager_id,manager_id || '','ceo') "상사번호"
FROM
employees
WHERE
manager_id IS NULL;
- 분기별 입사한 사원의 수를 구하세요.(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);
- 날짜 데이터에서 월 데이터를 추출하는 방법
SELECT
hire_date,
substr(hire_date,6,2),
TO_CHAR(hire_date,'mm'),
EXTRACT(MONTH FROM hire_date)
FROM
employees;