SQL - hr 실습 2
hr 실습은 hr 생성 후 작성 가능.
문제를 다 푼 다음에 답 보기.
hr의 데이터가 많기 때문에 각각의 칼럼명을 알고 있어야 문제를 풀 수 있다.

<문제>
문제1) '2004'년도에 고용된 모든 사람들의 last_name, hire_date를 조회
입사일 기준으로 오름차순 정렬
문제2) last_name 에 u가 포함되는 사원들의 사번 및 last_name 조회
문제3) last_name 의 네번째 글자가 a인 사원들의 사번 및 last_name 조회
문제4) last_name에 a 혹은 e가 들어있는 사원들의 last_name 조회 후 last_name 오름차순 출력
문제5) last_name에 a 와 e가 들어있는 사원들의 last_name 조회 후 last_name 오름차순 출력
문제6) 매니저가 없는 사원들의 last_name,job_id 조회
문제7) ST_CLERK인 JOB_ID를 가진 사원이 없는 부서 id 조회(단, 부서번호가 null인 앖은 제외)
문제8) commision_pct가 널이 아닌 사원들 중에서 commission = salart*commion_pct를 구하여, employee_id, first_name, job_id와 함께 출력
문제9) first_name이 Curtis인 사람의 first_name, last_name, phone_number,job_id 조회(단,단, job_id의 결과는 소문자로 출력)
문제10) 부서번호가 60,70,80,90인 사원들의 employee_id, first_name, last_name, department_id, job_id 조회(단, job_id가 IT _PROG 인 사원의 경우 프로그래머로 변경하여 출력)
<정답>
꼭 이것만 정답은 아닙니다. 다른 방법이 있을 수 있습니다.
문제1-답)
SELECT
last_name,
hire_date
FROM
employees
WHERE
hire_date >= '2004-01-01'
AND hire_date <= '2004-12-31'
ORDER BY
hire_date;
between 사용
SELECT
last_name,
hire_date
FROM
employees
WHERE
hire_date BETWEEN '2004-01-01' AND '2004-12-31'
ORDER BY
hire_date;
문제2-답)
SELECT
employee_id,
last_name
FROM
employees
WHERE
last_name LIKE '%u%';
문제3-답)
SELECT
employee_id,
last_name
FROM
employees
WHERE
last_name LIKE '___a%';
문제4-답)
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '%a%'
OR last_name LIKE '%e%'
ORDER BY
last_name ASC;
문제5-답)
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '%a%e%'
OR last_name LIKE '%e%a%'
ORDER BY
last_name ASC;
문제6-답)
SELECT
last_name,
job_id,
manager_id
FROM
employees
WHERE
manager_id IS NULL;
문제7-답)
SELECT
department_id
FROM
employees
WHERE
job_id NOT IN ( 'ST_CLERK' )
AND department_id IS NOT NULL;
문제8-답)
SELECT
employee_id,
first_name,
job_id,
salary * commission_pct AS commission
FROM
employees
WHERE
commission_pct IS NOT NULL;
문제9-답)
SELECT
first_name,
last_name,
phone_number,
lower(job_id)
FROM
employees
WHERE
first_name = 'Curtis';
문제10-답)
SELECT
employee_id,
first_name,
last_name,
department_id,
replace(job_id, 'IT_PROG', '프로그래머')
FROM
employees
WHERE
department_id IN ( 60, 70, 80, 90 );