IT_developers

SQL - hr 실습 2 본문

SQL

SQL - hr 실습 2

developers developing 2022. 8. 19. 19:00

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

'SQL' 카테고리의 다른 글

SQL-hr 실습4  (0) 2022.08.20
SQL-hr 실습3  (0) 2022.08.20
SQL - hr 실습 1  (0) 2022.08.19
SQL - hr 만들기  (0) 2022.08.19
SQL - scott(DML 실습)  (0) 2022.08.18
Comments