[SQL-์ค๋ผํด] SQL ํจ์ - ๋ฌธ์, ์ซ์, ๋ ์ง, ๋ณํ, ์ผ๋ฐ
SQL ํจ์
- ์นผ๋ผ์ ๊ฐ์ด๋ ๋ฐ์ดํฐ ํ์ ์ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ
- ์ซ์, ๋ ์ง ๋ฐ์ดํฐ์ ์ถ๋ ฅ ํ์ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ
- ํ๋ ์ด์์ ํ์ ๋ํ ์ง๊ณ๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ
SQL ํจ์ ์ ํ
1) ๋จ์ผํ ํจ์
ํ ์ด๋ธ์ ์ ์ฅ๋์ด ์๋ ๊ฐ๋ณ ํ์ ๋์์ผ๋ก ํจ์๋ฅผ ์ ์ฉํ์ฌ ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ํจ์
๋ฌธ์, ์ซ์, ๋ ์ง ๋ฐ์ดํฐ ํ์ ์ ์ ์ฉํ ์ ์๋ ํจ์์ ๋ฐ์ดํฐ ํ์ ์ ๋ณํํ๊ธฐ ์ํ ํจ์ ์กด์ฌ
2) ๋ณต์ํ ํจ์
์กฐ๊ฑด์ ๋ฐ๋ผ ์ฌ๋ฌ ํ์ ๊ทธ๋ฃนํํ์ฌ ๊ทธ๋ฃน๋ณ๋ก ๊ฒฐ๊ณผ๋ฅผ ํ๋์ฉ ๋ฐํํ๋ ํจ์
๋จ์ผํ ํจ์
- ๋ฐ์ดํฐ ๊ฐ์ ์กฐ์ํ๋๋ฐ ์ฃผ๋ก ์ฌ์ฉ
- ํ๋ณ๋ก ํจ์๋ฅผ ์ ์ฉํ์ฌ ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ํจ์
-
์ฌ๋ฌ ๊ฐ์ ์ธ์๋ฅผ ์ฌ์ฉํ ์ ์๊ณ , ์์/๋ณ์/์นผ๋ผ์ด๋ฆ/ํํ์์ ์ธ์๋ก ์ฌ์ฉ ๊ฐ๋ฅ
-
SQL ๋ช ๋ น์ฌ๋ฌธ์ select์ , where์ , order by์ ์์ ์ฌ์ฉ ๊ฐ๋ฅ
- ์ค์ฒฉํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ
๋จ์ผํ ํจ์๋ช
(์นผ๋ผ๋ช
|๋ฌธ์ ๋๋ ํํ์, [ํจ์์ธ์1, ํจ์์ธ์2, ... ])
๋ฌธ์ ํจ์
- ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ์ฌ ๋ฌธ์๋ ์ซ์๋ฅผ ๊ฒฐ๊ณผ๋ก ๋ฐํ
- ๋์๋ฌธ์ ๋ณํ ํจ์, ๋ฌธ์์กฐ์ ํจ์, ๋ฌธ์์ด๊ธธ์ด ๋ฐํ ํจ์ ...
1) ๋์๋ฌธ์ ๋ณํ ํจ์
์ข ๋ฅ | ์๋ฏธ | ์ฌ์ฉ์ |
INITCAP | ๋ฌธ์์ด์ ์ฒซ ๋ฒ์งธ ๋ฌธ์๋ง ๋๋ฌธ์๋ก ๋ณํ | INICAP('student') -> Student |
LOWER | ๋ฌธ์์ด ์ ์ฒด๋ฅผ ์๋ฌธ์๋ก ๋ณํ | LOWER('STUDENT') -> student |
UPPER | ๋ฌธ์์ด ์ ์ฒด๋ฅผ ๋๋ฌธ์๋ก ๋ณํ | UPEER('student') -> STUDENT |
> INITCATP
์ฒซ ๋ฒ์งธ ์๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก ๋ณํ
initcap(๋ฌธ์์ด|์นผ๋ผ๋ช
)
> LOWER
๋ฌธ์์ด ์ ์ฒด๋ฅผ ์๋ฌธ์๋ก ๋ณํ
lower(๋ฌธ์์ด|์ปฌ๋ผ๋ช
)
> UPPER
๋ฌธ์์ด ์ ์ฒด๋ฅผ ๋๋ฌธ์๋ก ๋ณํ
upper(๋ฌธ์์ด|์ปฌ๋ผ๋ช
)
2) ๋ฌธ์์ด ๊ธธ์ด ๋ฐํ ํจ์
์ข ๋ฅ | ์๋ฏธ | ์ฌ์ฉ์ |
LENGTH | ๋ฌธ์์ด ๊ธธ์ด๋ฅผ ๋ฐํ | LENGTH('ํ๊ธธ๋') -> 3 |
LENGTHB | ๋ฌธ์์ด ๋ฐ์ดํธ ์ ๋ฐํ | LEGNTHB('ํ๊ธธ๋') -> 6 |
> LENGTH
๋ฌธ์์ด์ ๊ธธ์ด ๋ฐํ
length(๋ฌธ์์ด|์นผ๋ผ๋ช
)
> LENGTHB
๋ฌธ์์ด์ ๋ฐ์ดํธ ์ ๋ฐํ
lengthb(๋ฌธ์์ด|์นผ๋ผ๋ช
)
3) ๋ฌธ์์กฐ์ ํจ์
์ข ๋ฅ | ์๋ฏธ | ์ฌ์ฉ์ |
CONCAT | ๋ ๋ฌธ์์ด์ ๊ฒฐํฉ, || ์ ๋์ผ | concat('sql', 'plu') -> sqlplus |
SUBSTR | ํน์ ๋ฌธ์ ๋๋ ๋ฌธ์์ด ์ผ๋ถ ์ถ์ถ | substr('sql*plus', 5, 4) -> plus |
INSTR | ํน์ ๋ฌธ์๊ฐ ์ถํํ๋ ์ฒซ ๋ฒ์งธ ์์น ๋ฐํ | instr('sql*plust', '*') -> 4 |
LPAD | ์ผ์ชฝ ์ ๋ ฌํ ์ผ์ชฝ์ ์ง์ ๋ฌธ์ ์ฝ์ | lpad('sql', 5, '*') -> **sql |
RPAD | ์ค๋ฅธ ์ชฝ์ ๋ ฌํ ์ผ์ชฝ์ ์ง์ ๋ฌธ์ ์ฝ์ | rpad('sql', 5, '*') -> sql*** |
LTRIM | ์ผ์ชฝ์ ์ง์ ๋ฌธ์ ์ญ์ | ltrim('*sql', '*') -> sql |
RTRIM | ์ค๋ฅธ์ชฝ์ ์ง์ ๋ฌธ์ ์ญ์ | rtrim('sql*', '*') -> sql |
> SUBSTR
๋ฌธ์์ด์ ์ผ๋ถ๋ฅผ ์ถ์ถ
substr(๋ฌธ์์ด|์นผ๋ผ๋ช
, ์์์์นm, ์ถ์ถ๊ฐ์n)
โช ๋ฌธ์์ด์์ m๋ฒ์งธ ๋ฌธ์๋ถ์ฒ n๊ฐ์ ๋ฌธ์ ์ถ์ถ
โช m์ด ์์๋ฉด ์์์์น๋ ๋ฌธ์์ด์ ๋ง์ง๋ง
โช n์ ์๋ผํ๋ฉด m๋ถํฐ ๋ง์ง๋ง ๋ฌธ์๊น์ง ์ถ์ถ
> INSTR
์ฌ์ฉ์๊ฐ ์ง์ ํ ํน์ ๋ฌธ์๊ฐ ํฌํจ๋ ์์น ๋ฐํ
์์น๋ ๋ฐ์ดํธ๊ฐ ์๋ ๋ฌธ์์ด์์์ ์์ ์๋ฏธ
์ผ๋ฐ์ ์ผ๋ก INSTR ํจ์๋ ๋ค๋ฅธ ํจ์์ ์ค์ฒฉํ์ฌ ์ฌ์ฉ
instr(๋ฌธ์์ด|์นผ๋ผ๋ช
, '์ฐพ์๋ฌธ์' [,์์์์นm [, ๋ช๋ฒ์งธn])
โช ๋ฌธ์์ด์์ ์ฐพ์๋ฌธ์๊ฐ ์ฒ์ ๋ํ๋๋ ์์น ๋ฐํ
โช m ์๋ต์ ์ฒ์๋ถํฐ, n ์๋ต์ ์ฒซ๋ฒ์งธ ๊ฐ (์ฐพ๊ณ ์ ํ๋ ๋ฌธ์๊ฐ ์ฌ๋ฌ๊ฐ ๋ค์ด ์์ ๋ ๊ทธ ์ค ๋ช ๋ฒ์งธ)
> LPAD, RPAD
๋ฌธ์์ด์ด ์ผ์ ํ ํฌ๊ธฐ๊ฐ ๋๋๋ก ์ผ์ชฝ ๋๋ ์ค๋ฅธ์ชฝ์ ์ง์ ํ ๋ฌธ์๋ฅผ ์ฝ์
lpad(๋ฌธ์์ด|์นผ๋ผ๋ช
, ๋ฐ์ดํธm [,ํน์ ๋ฌธ์]) #์ผ์ชฝ
rpad(๋ฌธ์์ด|์นผ๋ผ๋ช
, ๋ฐ์ดํธm [,ํน์ ๋ฌธ์]) #์ค๋ฅธ์ชฝ
โช ๋ฐ์ดํธm๋งํผ ๊ณต๋ฐฑ์ ์ผ์ชฝ ๋๋ ์ค๋ฅธ์ชฝ์ ํน์๋ฌธ์ ์ฝ์
โช ํน์๋ฌธ์ ์์ผ๋ฉด ๊ณต๋ฐฑ ์ฝ์
> LTRIM, RTRIM
๋ฌธ์์ด์์ ํน์ ๋ฌธ์๋ฅผ ์ญ์
ํจ์์ ์ธ์์์ ์ญ์ ํ ๋ฌธ์ ์ง์ ํ์ง ์์ผ๋ฉด, ๋ฌธ์์ด์ ์๋ค ๋ถ๋ถ์ ์๋ ๊ณต๋ฐฑ ์ญ์
ltrim(๋ฌธ์์ด|์นผ๋ผ๋ช
, ๋ฐ์ดํธm [,ํน์ ๋ฌธ์]) #์ผ์ชฝ
rtrim(๋ฌธ์์ด|์นผ๋ผ๋ช
, ๋ฐ์ดํธm [,ํน์ ๋ฌธ์]) #์ค๋ฅธ์ชฝ
โช ๋ฌธ์์ด์ ์ผ์ชฝ/์ค๋ฅธ์ชฝ์์ ์ง์ ๋ ํน์ ๋ฌธ์ ์ญ์
์ซ์ ํจ์
- ์ซ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
์ข ๋ฅ | ์๋ฏธ | ์ฌ์ฉ์ |
ROUND | ์ง์ ํ ์๋ฆฌ ์ดํ์์ ๋ฐ์ฌ๋ฆผ | round(123.17, 1) -> 123.2 |
TRUNC | ์ง์ ํ ์๋ฆฌ ์ดํ์์ ์ ์ญ | trunc(123.17, 1) => 123.1 |
MOD | m์ n์ผ๋ก ๋๋ ๋๋จธ์ง | mod(12, 10) -> 2 |
CEIL | ์ง์ ํ ๊ฐ๋ณด๋ค ํฐ ์ ์ค์์ ๊ฐ์ฅ ์์ ์ ์ | ceil(123.17) -> 124 |
FLOOR | ์ง์ ํ ๊ฐ๋ณด๋ค ์์ ์ ์ค์์ ๊ฐ์ฅ ํฐ ์ ์ | floor(123.17) -> 123 |
> ROUND
์ง์ ํ ์๋ฆฌ ์ดํ์์ ๋ฐ์ฌ๋ฆผํ ๊ฒฐ๊ณผ ๊ฐ์ ๋ฐํ
ROUND(a, b)๋ a๋ฅผ ์์์ ์ดํ b+1 ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผํ์ฌ b์๋ฆฌ๊น์ง ์ถ๋ ฅ
round(ํํ์|์ปฌ๋ผ๋ช
, ์๋ฆฌ์n)
โช ์์์ ์ดํ n+1์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
โช ์๋ฆฌ์n๊น์ง ํํํ๋ ๊ฒ!!!
โช ์๋ฆฌ์n ๊ฐ์ด ์์ผ๋ฉด ์์์ ์ดํ ์ถ๋ ฅ x ( = ์์์ ์ดํ ๋ฐ์ฌ๋ฆผ -> ์ ์)
โช ์๋ฆฌ์n ๊ฐ ์์๋ฉด ์์์ ์ผ์ชฝ b์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
> TRUNC
์ง์ ํ ์์์ ์๋ฆฌ์ ์ดํ๋ฅผ ์ ์ญํ ๊ฒฐ๊ณผ ๊ฐ์ ๋ฐํ
TRUNC(a, b)๋ a๋ฅผ ์์์ ์ดํ b+1 ์๋ฆฌ์์ ์ ์ญํ์ฌ b์๋ฆฌ๊น์ง ์ถ๋ ฅ
trunc(ํํ์|์นผ๋ผ๋ช
, ์๋ฆฌ์n)
โช ์์์ ์ดํ n+1์๋ฆฌ์์ ์ ์ญ
โช ์๋ฆฌ์n๊น์ง ํํํ๋ ๊ฒ!!!
โช ์๋ฆฌ์n ๊ฐ์ด ์์ผ๋ฉด ์์์ ์ดํ ์ถ๋ ฅ x
โช ์๋ฆฌ์n ๊ฐ ์์๋ฉด ์์์ ์ผ์ชฝ b์๋ฆฌ์์ ์ ์ญ
+) ์๋ฆฌ์
ex) ์์์ ์ ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ = > round(์ปฌ๋ผ๋ช , 2)
์์์ ์๋ฆฌ n๊น์ง ํํํ๋ ๊ฒ์ด๋ผ ์ธ์ฐ๋ฉด ์ฌ์
์ ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผํ๋ฉด ๋์งธ ์๋ฆฌ๊น์ง ๋ํ๋ด๋ ๊ฒ์ด๋ฏ๋ก round(์ปฌ๋ผ๋ช , 2)
... n๋ฒ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ -> round(์ปฌ๋ผ๋ช , n-1)
> MOD
๋๋๊ธฐ ์ฐ์ฐ ํ์ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅ
mod(m, n)
โช m์ n์ผ๋ก ๋๋ ๋๋จธ์ง
+ ) ์ง์ : mod(m,n) = 0 / ํ์ : mod(m,n) = 1
> CEIL
์ง์ ํ ์ซ์๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ์ ์ค ๊ฐ์ฅ ์์ ์ ์
ceil(ํํ์|์นผ๋ผ๋ช
)
โช ceil ์ฒ์ฅ -> ๋ณด๋ค ํฐ ์ซ์ ์ค ๊ฐ์ฅ ์์
ex) ceil(19.7) => 20
> FLOOR
์ง์ ํ ์ซ์๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์ค ๊ฐ์ฅ ํฐ ์ ์
floor(ํํ์|์นผ๋ผ๋ช
)
โช floor ๋ฐ๋ฅ -> ๋ณด๋ค ์์ ์ซ์ ์ค ๊ฐ์ฅ ํฐ
ex) floor(19.7) => 19
๋ ์ง ํจ์
- ๋ ์ง ๋ฐ์ดํฐ ํ์ ์ ์ฌ์ฉ
- ์ค๋ผํด์์๋ ๋ ์ง ๋ฐ์ดํฐ๋ฅผ ์ธ๊ธฐ, ์ฐ๋, ์, ์ผ, ์, ๋ถ, ์ด๋ฅผ ์ซ์ ํ์์ผ๋ก ์ ์ฅ
1) ๋ ์ง ๊ณ์ฐ
๋ ์ง ๋ฐ์ดํฐ์ ๋ํ๊ธฐ, ๋บด๊ธฐ์ ์ฐ์ฐ
- ๋ ์ง์์ ์ซ์๋ฅผ ๋ํ๊ฑฐ๋ ๋บ ๊ฒฐ๊ณผ ๋ ์ง
- ๋ ์ง์์ ๋ ์ง๋ฅผ ๋นผ๋ฉด ๋ ๋ ์ง ์ฌ์ด์ ๊ธฐ๊ฐ ๊ณ์ฐ
- ๊ธฐ๋ณธ์ ์ธ ๋จ์๋ ์ผ(day)๋จ์
- ์๊ฐ์ฐ์ฐ ์ซ์/24
์ข ๋ฅ | ๊ฒฐ๊ณผ | ์๋ฏธ |
๋ ์ง + ์ซ์ | ๋ ์ง | ๋ ์ง์ ์ผ์๋ฅผ ๊ฐ์ฐํ์ฌ ๋ ์ง ๊ณ์ฐ |
๋ ์ง - ์ซ์ | ๋ ์ง | ๋ ์ง์ ์ผ์๋ฅผ ๊ฐ์ฐํ์ฌ ๋ ์ง ๊ณ์ฐ |
๋ ์ง - ๋ ์ง | ์ผ์ | ๋ ์ง์ ๋ ์๋ฅผ ๊ฐ์ฐํ์ฌ ์ผ์ ๊ณ์ฐ |
๋ ์ง + ์ซ์/24 | ๋ ์ง | ๋ ์ง์ ์๊ฐ์ ๊ฐ์ฐํ์ฌ ๋ ์ง ๊ณ์ฐ |
2) ๋ ์ง ํจ์
๋ ์ง ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ์ฌ ๋ ์ง ๋๋ ๊ธฐ๊ฐ์ ๊ฒฐ๊ณผ ๊ฐ์ผ๋ก ๋ฐํ
๋ ์ง ๊ณ์ฐ์ ๊ธฐ๋ณธ๋จ์๋ ์ผ์ด์ง๋ง, ๋ ์ง ํจ์๋ฅผ ์ด์ฉํ์ฌ ์ ๋จ์ ๊ณ์ฐ ๊ฐ๋ฅ
์ข ๋ฅ | ์๋ฏธ | ๊ฒฐ๊ณผ |
SYSDATE | ์์คํ ์ ํ์ฌ ๋ ์ง | ๋ ์ง |
MONTHS_BETWEEN | ๋ ์ง์ ๋ ์ง์ฌ์ด์ ๊ฐ์ ๊ณ์ฐ | ์ซ์ |
ADD_MONTHS | ๋ ์ง์ ๊ฐ์์ ๋ํ ๋ ์ง ๊ณ์ฐ | ๋ ์ง |
NEXT_DAY | ๋ ์งํ์ ์ฒซ ์์ผ์ ๋ ์ง ๊ณ์ฐ | ๋ ์ง |
LAST_DAY | ์์ ๋ง์ง๋ง ๋ ์ง ๊ณ์ฐ | ๋ ์ง |
ROUND | ๋ ์ง ๋ฐ์ฌ๋ฆผ | ๋ ์ง |
TRUNC | ๋ ์ง ์ ์ญ | ๋ ์ง |
> SYSDATE
์์คํ ์ ์ ์ฅ๋ ํ์ฌ ๋ ์ง ๋ฐํ
์ด ๋จ์๊น์ง ๋ฐํ
> MONTHS_BETWEEN
๋ ์ง์ ๋ ์ง ์ฌ์ด์ ๊ฐ์ ์ ์ถ๋ ฅ
months_between(์ข
๋ฃ๋ ์ง, ์์๋ ์ง)
โช ์ข ๋ฃ๋ ์ง์ ์์๋ ์ง ์ฌ์ด์ ๊ฐ์ ์ ๊ณ์ฐ
> ADD_MONTHS
ํน์ ๊ฐ์ ์๋ฅผ ๋ํ ๋ ์ง ์ถ๋ ฅ
add_months(๋ ์ง, ๊ฐ์ ์)
โช ๋ ์ง์ ๊ฐ์ ์ ๋ํ ๋ ์ง
> LAST_DAY
ํด๋น ๋ ์ง๊ฐ ์ํ ๋ฌ์ ๋ง์ง๋ง ๋ ์ง ๋ฐํ
last_day(๋ ์ง)
โช ๋ ์ง๊ฐ ์ํ ๋ฌ์ ๋ง์ง๋ง ๋ ์ง
> NEXT_DAY
ํด๋น ์ผ์ ๊ธฐ์ค์ผ๋ก ๋ช ์๋ ์์ผ์ ๋ค์ ๋ ์ง ๋ฐํ
next_day(๋ ์ง, '์์ผ')
โช ๋ ์ง ์ดํ ์ฒซ๋ฒ์งธ '์์ผ'์ ๋ ์ง ๊ณ์ฐ
> ROUND (๋ฐ์ฌ๋ฆผ)
์ผ : ์ ์ค๋ฅผ ๋์ผ๋ฉด ๋ค์ ๋ ์์ (12:00:00), ๋์ง ์์ผ๋ฉด ๊ทธ๋ ์์ ์ถ๋ ฅ
์ : 15์ผ ์ด์์ด๋ฉด ๋ค์ ๋ฌ 1์ผ, ๋์ง ์์ผ๋ฉด ๊ทธ๋ฌ 1์ผ ์ถ๋ ฅ
๋ : 6์ ๋์ผ๋ฉด ๋ค์ ํด 1์ 1์ผ, ๋์ง ์์ผ๋ฉด ๊ทธํด 1์ 1์ผ ์ถ๋ ฅ
round(๋ ์ง[,'ํฌ๋ฉง'])
> TRUNC (์ ์ญ)
์ผ : ๊ทธ๋ ์์ (00:00:00) ์ถ๋ ฅ
์ : ๊ทธ ๋ฌ 1์ผ ์ถ๋ ฅ
๋ : ๊ทธ ํด 1์ 1์ผ ์ถ๋ ฅ
trunc(๋ ์ง[,'ํฌ๋งท'])
๋ฐ์ดํฐ ํ์ ๋ณํ
- ์ซ์๋ ๋ ์ง ํ์ ์ ๋ฌธ์์ ํจ๊ป ๊ฒฐํฉํ๊ฑฐ๋, ๋ณด๊ณ ์ ์์ ๋ง์ถ๊ธฐ ์ํด ์ฌ์ฉ
- ์ซ์, ๋ ์ง -> ๋ฌธ์ / ๋ฌธ์ -> ์ซ์ / ๋ฌธ์ -> ๋ ์ง๋ก ๋ณํ
1) ๋ฌต์์ ์ธ ๋ฐ์ดํฐ ํ์ ๋ณํ
์ ํํ ์ฐ์ฐ์ ์ํด ์ค๋ผํด์์ ๋ฐ์ดํฐ ํ์ ์ ๋ด๋ถ์ ์ผ๋ก ๋ณํํ๋ ๊ฒฝ์ฐ
๋ด๋ถ์ ์ธ ๋ณํ์ผ๋ก ์ธํด SQL ๋ช ๋ น๋ฌธ ๊ฒ์ ์๋ ๋๋ ค์ง ์ ์์
where a=b์์ ๋น๊ต๋๋ ๋ฐ์ดํฐ ํ์ ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ
A์ ๋ฐ์ดํฐ ํ์ | B์ ๋ฐ์ดํฐ ํ์ | ๋ณํ ๊ฒฐ๊ณผ |
NUMBER | VARCHAR2 ๋๋ CHAR | B๊ฐ NUMBER ํ์ ์ผ๋ก ๋ณํ |
VARCHAR2 ๋๋ CHAR | NUMBER | A๊ฐ NUMBER ํ์ ์ผ๋ก ๋ณํ |
โช ๋ฌธ์ ํ์ ์ ์ซ์ ํ์ ์ผ๋ก ๋ณํ์ ๋ฌธ์์ด์ด ์ซ์๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ๋ง ๊ฐ๋ฅ
2) ๋ช ์์ ์ธ ๋ฐ์ดํฐ ํ์ ๋ณํ
์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ํ์ ๋ณํํจ์๋ฅผ ํตํด ๋ช ์์ ์ผ๋ก ๋ฐ์ดํฐ ํ์ ๋ณํ
์ข ๋ฅ | ์๋ฏธ | ์ฌ์ฉ์ | ๊ฒฐ๊ณผ |
TO_CHAR | ์ซ์/๋ ์ง -> ๋ฌธ์ | TO_CHAR('05/03', 'YYYY-MM') | 2005-03 |
TO_NUMBER | ๋ฌธ์ -> ์ซ์ | TO_NUMBER(1000, '9,999') | 1,000 |
TO_DATE | ๋ฌธ์ -> ๋ ์ง | TO_DATE('05/03', 'YYYY-MM') | 2005-03 |
> TO_CAHR (๋ ์ง -> ๋ฌธ์)
๋ ์ง๋ ์ซ์๋ฅผ ๋ฌธ์๋ก ๋ณํ
to_char(์ซ์|๋ ์ง, 'ํฌ๋งท')
โ ๋ ์ง ์ถ๋ ฅ ํ์ ๋ณํ
ํผ์ค๋ ์ค๋ผํด ๋ ์ง ํ์ค ํ์ 'YY/MM/DD'
๋ ์ง์ ๋ํ ์ถ๋ ฅ ํ์์ ๋ณ๋๋ก ์ง์ ํ์ง ์์ผ๋ฉด ํ์ค ํ์์ผ๋ก ์ถ๋ ฅ
์ถ๋ ฅ ํ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ๊ตฌ์ฒด์ ์ธ ์๊ฐ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํด TO_CHAR ํจ์ ์ฌ์ฉ
โ ์๊ฐ ํํ ํ์
๋ ์ง ๋ฐ์ดํฐ์์ ํฌํจํ๊ณ ์๋ ์๊ฐ ์ ๋ณด๋ฅผ ํ์ํ๊ธฐ ์ํด ์ฌ์ฉ
์๊ฐ์ ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ '12:00 AM'
์ข ๋ฅ | ์๋ฏธ |
AM ๋๋ PM | ์ค์ (AM)๊ณผ ์คํ(PM) ์๊ฐ ํ์ |
A.M ๋๋ P.M | ์ค์ (A.M)๊ณผ ์คํ(P.M) ์๊ฐ ํ์ |
HH ๋๋ HH12 | ์๊ฐ(1-12) |
HH24 | 24์๊ฐ(0-23) |
MI | ๋ถ |
SS | ์ด |
โ ๊ธฐํ ๋ ์ง ํํ ํ์
๋ ์ง ์ถ๋ ฅ ํ์์์ ํ์ดํ(-), ์ฌ๋์(/), ์ฝค๋ง(,)์ ๊ฐ์ ํน์ ๋ฌธ์๋ ํฌํจ ๊ฐ๋ฅ
์ข ๋ฅ | ์๋ฏธ |
"text" | ๊ฒฐ๊ณผ์ ํจ๊ป ์ถ๋ ฅํ ๋ฌธ์์ด์ ์ธ์ฉ ๋ถํธ๋ก ํ์ |
TH | ์์๋ก ํ์ |
SP | ์ซ์(๊ธฐ์)๋ฅผ ์๋ฌธ์ผ๋ก ํ์ |
SPTH ๋๋ THSP | ์์๋ฅผ ์๋ฌธ์ผ๋ก ํ์ |
> TO_CHAR (์ซ์ -> ๋ฌธ์)
๋ค์ํ ์ถ๋ ฅ ํ์์ ์ง์ ํ์ฌ ์ซ์๋ฅผ ๋ฌธ์ ๋ฐ์ดํฐ๋ก ๋ณํ
> TO_NUMBER
์ซ์๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ซ์ ๋ฐ์ดํฐ๋ก ๋ณํ
to_number(๋ฌธ์์ด)
> TO_DATE
์ซ์์ ๋ฌธ์๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ๋ ์ง ๋ฐ์ดํฐ๋ก ๋ณํ
๋ ์ง ํ์ ๊ณผ ๋ฌธ์ ํ์ ์ ๋น๊ตํ ๋ ๋ฌธ์ ํ์ ์ ๋ ์ง ํ์ ์ผ๋ก ํต์ผํ๊ธฐ ์ํด ์ฌ์ฉ
๋ฌธ์์ด์ ๋ ์ง ๋ฐ์ดํฐ๋ก ๋ณํํ์ฌ ๋ ์ง ๋ฐ์ดํฐ ํ์ ์นผ๋ผ์ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉ
to_date(๋ฌธ์, 'ํฌ๋งท')
์ค์ฒฉ ํจ์
- ํจ์๋ฅผ ์ฌ๋ฌ ๊ฐ ๊ฒน์ณ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- ๋จ์ผํ ํจ์๋ ์ค์ฒฉํ์ฌ ์คํ ๊ฐ๋ฅ
- ์ค์ฒฉ๋ ํจ์์ ์์ : ๋งจ ์์ชฝ์ ์๋ ํจ์๋ถํฐ ์คํํ์ฌ ๊ฒฐ๊ณผ ๊ฐ์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฐ๊นฅ์ชฝ ํจ์์ ์ธ์๋ก ๋๊ฒจ ์ฒ๋ฆฌ
F3(F2(F1(์ปฌ๋ผ๋ช
, ์ธ์1), ์ธ์2), ์ธ์3)
โช F1 ํจ์์ ๊ฒฐ๊ณผ ๊ฐ์ F2์ ์ธ์๋ก, F2์ ๊ฒฐ๊ณผ ๊ฐ์ F3์ ์ธ์๋ก ์ฌ์ฉ
์ผ๋ฐ ํจ์
- NULL ๊ด๋ จ ํจ์ : NVL, NVL2, NULLIF, COALESCE
- DECODE, CASE
NULL ๊ด๋ จ ํจ์
> NVL
NULL์ 0๋๋ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ณํํ๊ธฐ ์ํ ํจ์
NVL ํจ์๋ฅผ ์ด์ฉํด NULL์ ์ซ์๋ ๋ฌธ์๋ก ๋์ฒดํ ํ ์ฐ์ฐ ์ํ ๊ฐ๋ฅ
NVL(์นผ๋ผexp1, ๋์ฒด๊ฐexp2)
โช exp1 : NULL์ ํฌํจํ๋ ์นผ๋ผ ๋๋ ํํ์
โช exp2 : NULL์ ๋์ฒดํ๋ ๊ฐ
โช exp1๊ณผ exp2๋ ๋ฐ๋์ ๋์ผํ๋ ๋ฐ์ดํฐ ํ์ ์ด์ด์ผ ํจ
> NVL2
์ฒซ ๋ฒ์งธ ์ธ์ ๊ฐ์ด NULL์ด ์๋๋ฉด ๋ ๋ฒ์งธ ์ธ์ ๊ฐ ์ถ๋ ฅ
์ฒซ ๋ฒ์งธ ์ธ์ ๊ฐ์ด NULL์ด๋ฉด ์ธ ๋ฒ์งธ ์ธ์ ๊ฐ ์ถ๋ ฅ
nvl2(์นผ๋ผ, null์๋๋๊ฐ, null์ผ๋๊ฐ)
> NULLIF
๋ ๊ฐ์ ํํ์์ ๋น๊ตํ์ฌ ๊ฐ์ด ๋์ผํ๋ฉด NULL ๋ฐํ,
์ผ์นํ์ง ์์ผ๋ฉด ์ฒซ ๋ฒ์งธ ํํ์์ ๊ฐ ๋ฐํ
nullif(์ผ์นx๋๊ฐexp1, exp2)
โช exp1, exp2 ๋์ผ - null / ์ผ์นx - exp1
> coalesce
์ธ์ ์ค์์ NULL์ด ์๋ ์ฒซ ๋ฒ์งธ ์ธ์ ๋ฐํ
N๊ฐ์ ์ธ์ ์ค์์ ์ฒซ ๋ฒ์งธ ์ธ์ ๊ฐ์ด NULL์ด๋ฉด ๋ ๋ฒ์งธ ๊ฐ์ ์ถ๋ ฅ,
๋ ๋ฒ์งธ ์ธ์ ๊ฐ์ด NULL์ด๋ฉด ์ธ ๋ฒ์งธ ์ธ์ ๊ฐ ์ถ๋ ฅ
coalesce(exp1, exp2, exp3, ... , expN)
โช exp1 : exp1์ด null์ด ์๋๋ฉด exp1 ๋ฐํ
โช exp2 : exp1์ด null์ด๊ณ exp2๊ฐ null ์๋๋ฉด exp2 ๋ฐํ
โช expN : exp1๋ถํฐ expN-1๊น์ง null์ด๊ณ expN์ด null ์๋๋ฉด expN ๋ฐํ
DECODE ํจ์
- ์ค๋ผํด์์๋ง ์ ์ฉํ SQL ํจ์
- IF๋ฌธ์ด๋ CASE๋ฌธ์ผ๋ก ํํ๋๋ ๋ณต์กํ ์๊ณ ๋ฆฌ์ฆ์ ํ๋์ SQL ๋ช ๋ น๋ฌธ์ผ๋ก ๊ฐ๋จํ๊ฒ ํํ
- ๋น๊ต ์ฐ์ฐ์ '='๋ง ๊ฐ๋ฅ
decode(ํํ์|์นผ๋ผ๋ช
, ์ฐพ์๊ฐ1, ๋ฐํ๊ฐ1 [์ฐพ์๊ฐ2, ๋ฐํ๊ฐ2, ..] [, ๊ธฐ๋ณธ๊ฐ])
โช ํํ์ ๋๋ ์นผ๋ผ์ ๊ฐ์ด ์ฐพ์๊ฐ1๊ณผ ์ผ์นํ๋ฉด ๋ฐํ๊ฐ1 ๋ฐํ, ์ฐพ์๊ฐ2์ ์ผ์นํ๋ฉด ๋ฐํ๊ฐ2 ๋ฐํ
โช ์ผ์นํ๋ ๊ฐ์ด ์๊ฑฐ๋ null์ธ ๊ฒฝ์ฐ์๋ ๊ธฐ๋ณธ๊ฐ ๋ฐํ
โช ๊ธฐ๋ณธ๊ฐ์ด ์์ ๊ฒฝ์ฐ null ๋ฐํ
CASE ํจ์
- DECODEํจ์ ๊ธฐ๋ฅ ํ์ฅ
- ์ฐ์ ์ฐ์ฐ, ๊ด๊ณ ์ฐ์ฐ, ๋ ผ๋ฆฌ ์ฐ์ฐ๊ณผ ๊ฐ์ ๋ค์ํ ๋น๊ต ์ฐ์ฐ ๊ฐ๋ฅ
- when์ ์์ ํํ์์ ๋ค์ํ๊ฒ ์ ์ ๊ฐ๋ฅ
case when ํํ์|์นผ๋ผ๋ช
์กฐ๊ฑด1 then ๊ฒฐ๊ณผ1
[when ํํ์|์นผ๋ผ๋ช
์กฐ๊ฑด2 then ๊ฒฐ๊ณผ2
when ํํ์|์นผ๋ผ๋ช
์กฐ๊ฑด3 then ๊ฒฐ๊ณผ3
else ๊ธฐ๋ณธ๊ฐ]
end
์ฐธ๊ณ ๋์ : ์ค๋ผํด ์ค์ฌ์ SQL๋ฐฐ์ํฐ, ์ฐ์ฉํ ์ธ ๊ณต์ , ์๋ฅ์ถํ์ฌ, 2007๋
'Ability ๐ฑ > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQL-์ค๋ผํด] ์๋ธ์ฟผ๋ฆฌ(๋จ์ผํ, ๋ค์คํ, ์ํธ์ฐ๊ด, ์ค์นผ๋ผ, ์ธ๋ผ์ธ ๋ทฐ) (0) | 2022.06.19 |
---|---|
[SQL-์ค๋ผํด] ์กฐ์ธ - EQUI join, NON-EQUI join, OUTER join, SELF join (0) | 2022.06.18 |
[SQL-์ค๋ผํด] ๊ทธ๋ฃน ํจ์ (0) | 2022.06.17 |
[SQL-์ค๋ผํด] ์กฐ๊ฑด ๊ฒ์ ๋ฐ ํ์ ์ ๋ ฌ (0) | 2022.06.16 |
[SQL-์ค๋ผํด] ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด (0) | 2022.04.19 |