๐Ÿ—„๏ธ Backend/Oracle

์˜ค๋ผํด(Oracle) - ๊ธฐ๋ณธ HR ๊ณ„์ • ์—ฐ์Šต ๋ฌธ์ œ

kongmi 2023. 2. 16. 18:18

โš ๏ธ ์ถœ๋ ฅ์€ ๋ฐ์ดํ„ฐ ์–‘์ด ๋งŽ์•„์„œ ์ผ๋ถ€๋งŒ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค.


๐Ÿธ EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ King์˜ ์ •๋ณด๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‚ฌ์›๋ฒˆํ˜ธ, ์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด(์†Œ๋ฌธ์ž๋กœ),๋ถ€์„œ๋ฒˆํ˜ธ ์ถœ๋ ฅํ•˜๋ผ

SELECT EMPLOYEE_ID,
    FIRST_NAME || ' ' || LAST_NAME AS NAME,
    LOWER(JOB_ID), DEPARTMENT_ID
    FROM EMPLOYEES
    WHERE LOWER(LAST_NAME) = 'king';

๐Ÿธ EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ King์˜ ์ •๋ณด๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‚ฌ์›๋ฒˆํ˜ธ, ์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด(๋Œ€๋ฌธ์ž๋กœ),๋ถ€์„œ๋ฒˆํ˜ธ ์ถœ๋ ฅํ•˜๋ผ

SELECT EMPLOYEE_ID,
    FIRST_NAME || ' ' || LAST_NAME AS NAME,
    UPPER(JOB_ID), DEPARTMENT_ID
    FROM EMPLOYEES
    WHERE UPPER(LAST_NAME) = 'KING';

๐Ÿธ DEPARTMENTS ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ๋ฒˆํ˜ธ, ๋ถ€์„œ์ด๋ฆ„, ์œ„์น˜๋ฒˆํ˜ธ๋ฅผ ํ•ฉํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ผ

SELECT DEPARTMENT_ID || ' ' || DEPARTMENT_NAME || ' ' || LOCATION_ID AS ๋ถ€์„œ์ •๋ณด
    FROM DEPARTMENTS;

๐Ÿธ EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ์ด๋ฆ„์˜ ์ฒซ ๊ธ€์ž๊ฐ€ ‘K’ ๋ณด๋‹ค ํฌ๊ณ  ‘Y’๋ณด๋‹ค ์ ์€ ์‚ฌ์›์˜ ์ •๋ณด๋ฅผ ์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ์—…๋ฌด, ๊ธ‰์—ฌ, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.

SELECT EMPLOYEE_ID, FIRST_NAME, JOB_ID, SALARY, DEPARTMENT_ID
    FROM EMPLOYEES
    WHERE SUBSTR(FIRST_NAME,1,1) > 'K' AND SUBSTR(FIRST_NAME,1,1) < 'Y'
    ORDER BY FIRST_NAME;

๐Ÿธ EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ 20๋ฒˆ ๋ถ€์„œ ์ค‘ ์ด๋ฆ„์˜ ๊ธธ์ด ๋ฐ ๊ธ‰์—ฌ์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ์ด๋ฆ„์˜ ์ž๋ฆฟ์ˆ˜(LENGTH), ๊ธ‰์—ฌ, ๊ธ‰์—ฌ์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.

SELECT EMPLOYEE_ID, FIRST_NAME, LENGTH(FIRST_NAME), SALARY, LENGTH(SALARY)
    FROM EMPLOYEES
    WHERE DEPARTMENT_ID = 20;

๐Ÿธ EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ์ด๋ฆ„ ์ค‘ ‘e’์ž์˜ ์œ„์น˜๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.

SELECT FIRST_NAME,
    INSTR(FIRST_NAME,'e') AS ์ด๋ฆ„
    FROM EMPLOYEES;

๐Ÿธ EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ 80์ธ ์‚ฌ๋žŒ์˜ ๊ธ‰์—ฌ๋ฅผ 30์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ผ.

SELECT FIRST_NAME, SALARY,
    MOD(SALARY,30)
    FROM EMPLOYEES
    WHERE DEPARTMENT_ID = 80;

๐Ÿธ EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ํ˜„์žฌ๊นŒ์ง€ ๊ทผ๋ฌด์ผ ์ˆ˜๊ฐ€ ๋ช‡์ฃผ ๋ช‡์ผ ์ธ๊ฐ€๋ฅผ ์ถœ๋ ฅํ•˜์—ฌ๋ผ.
(๋‹จ, ๊ทผ๋ฌด ์ผ์ˆ˜๊ฐ€ ๋งŽ์€ ์‚ฌ๋žŒ ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜์—ฌ๋ผ.)

SELECT FIRST_NAME, HIRE_DATE,
    TO_CHAR(TRUNC((SYSDATE - HIRE_DATE)/7)) || '์ฃผ ' ||
    TO_CHAR(MOD(TRUNC(SYSDATE - HIRE_DATE),7)) || '์ผ' AS "๊ทผ๋ฌด์ฃผ,์ผ"
    FROM EMPLOYEES
    ORDER BY HIRE_DATE;

๐Ÿธ EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ 50์—์„œ ๊ธ‰์—ฌ ์•ž์— $๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  3์ž๋ฆฌ๋งˆ๋‹ค , ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ

SELECT FIRST_NAME, SALARY,
    TO_CHAR(SALARY, '$999,999') AS SALARY1,
    DEPARTMENT_ID
    FROM EMPLOYEES
    WHERE DEPARTMENT_ID = 50;