hyeonga_code

Database_61_SQL 활용 실습 3 본문

Oracle Database

Database_61_SQL 활용 실습 3

hyeonga 2023. 8. 18. 06:59
반응형



    -- PRACTICE 3
-- 현재 날짜를 표시하는 질의를 작성하고 열 레이블을 Date로 지정
SELECT sysdate, current_date 
FROM dual;



-- 각 사원에 대해 사원 번호, 이름, 급여 및 15% 인상된 급여를 정수로 표시하시오. 인상된 급여 열의 레이블을 New Salary로 지정
SELECT employee_id, last_name, salary, ROUND(salary*1.15) "New Salary"
FROM employees;



-- 2번 질의를 수정하여 새 급여에서 이전 급여를 빼는 새 열을 추가하고 레이블을 Increase로 지정하고 수정한 질의를 실행
SELECT employee_id, last_name, salary, ROUND(salary*1.15) "New Salary", ROUND(salary*1.15)-salary AS "Increase"
FROM employees;



-- 이름이 J, K, L 또는 M으로 시작하는 사원을 표시
SELECT last_name
FROM employees
WHERE SUBSTR(last_name, 1, 1) IN ('J', 'K', 'L', 'M');



-- 이름이 J, A 또는 M으로 시작하는 모든 사원의 이름(대문자 표시) 및 이름 길이를 표시
    -- 각 열에 적합한 레이블을 지정하시오. 결과를 사원의 이름에 따라 정렬
SELECT UPPER(last_name) "Name" , LENGTH(last_name) "Length"
FROM employees
WHERE SUBSTR(last_name, 1, 1) IN ('J', 'A', 'M')
ORDER BY last_name;



-- 각 사원의 이름을 표시하고 근무 달 수(입사일로부터 현재까지의 달 수)를 계산하여 열 레이블을 MONTHS_WORKED로 지정
    -- 결과는 정수로 반올림하여 표시하고 근무 달 수를 기준으로 정렬
SELECT last_name, ROUND(MONTHS_BETWEEN (SYSDATE, hire_date)) MONTHS_WORKED
FROM employees
ORDER BY MONTHS_BETWEEN (SYSDATE, hire_date);



-- 모든 사원의 성 및 급여를 표시하기 위한 query를 작성
    -- 급여가 15자 길이로 표시되고 왼쪽에 $ 기호가 채워지도록 형식을 지정
    -- 열 레이블을 SALARY 로 지정
SELECT last_name, LPAD(salary, 15, '$') SALARY
FROM employees;
 



-- 부서 90의 모든 사원에 대해 성(last_name) 및 재직 기간(주 단위)을 표시하도록 query 를 작성
    -- 주를 나타내는 숫자 열의 레이블로 TENURE를 지정하고 주를 나타내는 숫자 값을 소수점 왼쪽에서 truncate 하시오. 
    -- 직원 재직 기간의 내림차순으로 레코드를 표시
SELECT last_name, TRUNC((SYSDATE-hire_date)/7) AS TENURE
FROM employees
WHERE department_id=90
ORDER BY hire_date DESC;

반응형