๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฆ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค (DB) ๐Ÿ“ฆ/๐Ÿ…พ ์˜ค๋ผํด DB & SQL

Power, Trunc, Trim, Round๋“ฑ ๊ฐ์ข… ํ•จ์ˆ˜ํ™œ์šฉ - ๋ฌธ์ œ 2

by Meteora_ 2021. 2. 10.
728x90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
--HR
 
--๋ฌธ์ œ1) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ King์˜ ์ •๋ณด๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‚ฌ์›๋ฒˆํ˜ธ,
--์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด(์†Œ๋ฌธ์ž๋กœ),๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
 
SELECT employee_id, last_name, lower(job_id), department_id
FROM employees
WHERE LOWER(last_name) = 'king';
 
--๋ฌธ์ œ2) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ King์˜ ์ •๋ณด๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‚ฌ์›๋ฒˆํ˜ธ,
--์„ฑ๋ช…, ๋‹ด๋‹น์—…๋ฌด(๋Œ€๋ฌธ์ž๋กœ),๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
 
SELECT employee_id, last_name, upper(job_id), department_id
FROM employees
WHERE UPPER(last_name) = 'KING';
 
--๋ฌธ์ œ3) DEPARTMENTS ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ๋ฒˆํ˜ธ์™€ ๋ถ€์„œ์ด๋ฆ„, ๋ถ€์„œ์ด๋ฆ„๊ณผ ์œ„์น˜๋ฒˆ
--ํ˜ธ๋ฅผ ํ•ฉํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋„๋ก ํ•˜๋ผ.
 
SELECT department_id || ' ' || department_name
        , department_name || ' ' || location_id
FROM departments;
 
--๋ฌธ์ œ4) 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 ASC;
 
--๋ฌธ์ œ5) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ 20๋ฒˆ ๋ถ€์„œ ์ค‘ ์ด๋ฆ„์˜ ๊ธธ์ด ๋ฐ ๊ธ‰์—ฌ์˜ ์ž๋ฆฟ์ˆ˜
--๋ฅผ ์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ์ด๋ฆ„์˜ ์ž๋ฆฟ์ˆ˜, ๊ธ‰์—ฌ, ๊ธ‰์—ฌ์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
 
SELECT employee_id ,first_name, length(first_name), job_id, salary, LENGTH(salary)
FROM employees
WHERE department_id = 20;
 
SELECT
    *
FROM employees
WHERE department_id = 20;
 
--๋ฌธ์ œ6) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ์ด๋ฆ„ ์ค‘ โ€˜eโ€™์ž์˜ ์œ„์น˜๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.@@@
SELECT INSTR(first_name,'e',11
FROM employees; 
 
--๋ฌธ์ œ7) ๋‹ค์Œ์˜ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ถ„์„ํ•˜๋ผ.
 
SELECT ROUND(4567.678), --4568
ROUND(4567.678,0),--4568
ROUND(4567.678,2),--4567.68
ROUND(4567.678,-2)--4600
FROM dual;
 
--๋ฌธ์ œ8) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ 80์ธ ์‚ฌ๋žŒ์˜ ๊ธ‰์—ฌ๋ฅผ 30์œผ๋กœ ๋‚˜๋ˆˆ
--๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ผ.
SELECT salary, MOD(salary,30), department_id
FROM employees
WHERE department_id = 80;
 
--๋ฌธ์ œ9) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ 30๋ฒˆ ๋ถ€์„œ ์ค‘ ์ด๋ฆ„๊ณผ ๋‹ด๋‹น ์—…๋ฌด๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ
--์ถœ๋ ฅํ•˜์—ฌ๋ผ. ๋‹จ ๋‹ด๋‹น ์—…๋ฌด๋ฅผ ํ•œ ์ค„ ์•„๋ž˜๋กœ ์ถœ๋ ฅํ•˜๋ผ.
 
--๋ณด์ด๊ธฐ์—” ํ•œ ์ค„์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๊ทธ๋ฆฌ๋“œ๋ฅผ ๋”๋ธ” ํด๋ฆญํ•˜๋ฉด ๊ฐœํ–‰ ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„
--ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
SELECT  first_name ||CHR(10)||  job_id
FROM employees
WHERE department_id = 30;
 
 
--as : ์ปฌ๋Ÿผ์— ๋ณ„์นญ์ฃผ๊ธฐ
--๋ฌธ์ œ10) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ํ˜„์žฌ๊นŒ์ง€ ๊ทผ๋ฌด์ผ ์ˆ˜๊ฐ€ ๋ช‡ ์ฃผ ๋ช‡ ์ผ ์ธ๊ฐ€๋ฅผ ์ถœ
--๋ ฅํ•˜์—ฌ๋ผ. ๋‹จ ๊ทผ๋ฌด ์ผ์ˆ˜๊ฐ€ ๋งŽ์€ ์‚ฌ๋žŒ ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜์—ฌ๋ผ.
SELECT first_name, hire_date, 
    TO_DATE('2021-02-09'- hire_date AS "์ด๊ทผ๋ฌด์ผ์ˆ˜",
    trunc((TO_DATE('2021-02-09'- hire_date)/7) AS "์ด ๊ทผ๋ฌด ์ฃผ ์ผ ์ˆ˜"
 
    --SYSDATE ๋กœ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค 
FROM employees
order by "์ด๊ทผ๋ฌด์ผ์ˆ˜" DESC;
 
SELECT
    *
FROM employees;
 
--๋ฌธ์ œ11) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ 50์—์„œ ๊ธ‰์—ฌ ์•ž์— $๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  3์ž๋ฆฌ
--๋งˆ๋‹ค ,๋ฅผ ์ถœ๋ ฅํ•˜๋ผ@@@@@
 
SELECT department_id,  TO_CHAR(salary,'$999,999,999')
FROM employees
WHERE department_id = 50;
cs

๋Œ“๊ธ€