ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/DataBase

[SQL] ์˜ค๋ผํด ํ•จ์ˆ˜

NaNaRin๐Ÿ™ƒ 2021. 2. 24. 16:33

1. ์˜ค๋ผํด ํ•จ์ˆ˜๋ž€?

- ํŠน์ •ํ•œ ๊ฒฐ๊ณผ ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ ๋ช…๋ น์–ด

- ๋‚ด์žฅ ํ•จ์ˆ˜ built-in function : ์˜ค๋ผํด์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜์™€

- ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜ user-defined function : ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”์— ์˜ํ•ด ์ง์ ‘ ์ •์˜ํ•œ ํ•จ์ˆ˜

 

2. ๋‚ด์žฅ ํ•จ์ˆ˜์˜ ์ข…๋ฅ˜

- ๋‹จ์ผํ–‰ ํ•จ์ˆ˜ single-row function : ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ํ–‰์”ฉ ์ž…๋ ฅ๋˜๊ณ  ์ž…๋ ฅ๋œ ํ•œ ํ–‰๋‹น ๊ฒฐ๊ณผ๊ฐ€ ํ•˜๋‚˜์”ฉ ๋‚˜์˜ค๋Š” ํ•จ์ˆ˜

- ๋‹ค์ค‘ํ–‰ ํ•จ์ˆ˜ multiple-row function : ์—ฌ๋Ÿฌ ํ–‰์ด ์ž…๋ ฅ๋˜์–ด ํ•˜๋‚˜์˜ ํ–‰์œผ๋กœ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜๋˜๋Š” ํ•จ์ˆ˜

 

3. ๋‹จ์ผํ–‰ ํ•จ์ˆ˜

(1) ๋ฌธ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๋Š” ๋ฌธ์ž ํ•จ์ˆ˜

 

[SQL] ์˜ค๋ผํด ๋‚ด์žฅ ํ•จ์ˆ˜ - ๋ฌธ์ž ํ•จ์ˆ˜

1. ๋ฌธ์ž ํ•จ์ˆ˜๋ž€ - ๋ฌธ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๊ฑฐ๋‚˜ ๋ฌธ์ž ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ํŠน์ • ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜ 2. ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜ - UPPER(๋ฌธ์ž์—ด) : ๊ด„ํ˜ธ ์•ˆ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ

nanarin.tistory.com

(2) ์ˆซ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์‚ฐํ•˜๊ณ  ์ˆ˜์น˜๋ฅผ ์กฐ์ •ํ•˜๋Š” ์ˆซ์ž ํ•จ์ˆ˜

 

[SQL] ์˜ค๋ผํด ๋‚ด์žฅ ํ•จ์ˆ˜ - ์ˆซ์ž ํ•จ์ˆ˜

1. ์ˆซ์ž ํ•จ์ˆ˜๋ž€ - ์ˆซ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์‚ฐํ•˜๊ณ  ์ˆ˜์น˜๋ฅผ ์กฐ์ •ํ•˜๋Š” ํ•จ์ˆ˜ 2. ํŠน์ • ์œ„์น˜์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋Š” ROUND ํ•จ์ˆ˜ - ROUND(์ˆซ์ž, ๋ฐ˜์˜ฌ๋ฆผ ์œ„์น˜) : ํŠน์ • ์ˆซ์ž๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ - ๋ฐ˜์˜ฌ๋ฆผ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜์ง€

nanarin.tistory.com

(3) ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋‚ ์งœ ํ•จ์ˆ˜

 

[SQL] ์˜ค๋ผํด ๋‚ด์žฅ ํ•จ์ˆ˜ - ๋‚ ์งœ ํ•จ์ˆ˜

1. ๋‚ ์งœ ํ•จ์ˆ˜๋ž€ - ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ํ•จ์ˆ˜ 2. ํ˜„์žฌ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” SYSDATE ํ•จ์ˆ˜ - ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ์—†์ด ํ˜„์žฌ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ๊ตฌํ•ด ๋ฐ˜ํ™˜ -- 1. 2. 3. SELECT SYSDATE AS NOW, SYSDATE - 1 AS Y..

nanarin.tistory.com

(4) ์ž๋ฃŒํ˜•์„ ๋ณ€ํ™˜ํ•˜๋Š” ํ˜• ๋ณ€ํ™˜ ํ•จ์ˆ˜

 

[SQL] ์˜ค๋ผํด ๋‚ด์žฅ ํ•จ์ˆ˜ - ํ˜• ๋ณ€ํ™˜ ํ•จ์ˆ˜

1. ํ˜• ๋ณ€ํ™˜ ํ•จ์ˆ˜๋ž€ - ์˜ค๋ผํด์—์„œ ์ œ๊ณตํ•˜๋Š” ์ž๋ฃŒํ˜•์„ ํ•„์š”์— ๋”ฐ๋ผ ๋ฐ”๊ฟ” ์ฃผ์–ด์•ผ ํ•  ๋•Œ ์ง€์ •๋œ ์ž๋ฃŒํ˜•์„ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜ - ์ž๋™ ํ˜• ๋ณ€ํ™˜ : ์•”์‹œ์  ํ˜• ๋ณ€ํ™˜(implicit type conversion). ์ˆซ์ž๋กœ ์ธ์‹ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž

nanarin.tistory.com

(5) NULL ์ฒ˜๋ฆฌ ํ•จ์ˆ˜

 

[SQL] ์˜ค๋ผํด ๋‚ด์žฅ ํ•จ์ˆ˜ - NULL ์ฒ˜๋ฆฌ ํ•จ์ˆ˜

1. NULL ์ฒ˜๋ฆฌ ํ•จ์ˆ˜๋ž€ - ํŠน์ • ์นผ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ NULL์ผ ๊ฒฝ์šฐ ์—ฐ์‚ฐ ์ˆ˜ํ–‰์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ NULL์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋Œ€์ฒดํ•ด ์ฃผ์–ด์•ผ ํ•  ๋•Œ๊ฐ€ ๋ฐœ์ƒ 2. NVL ํ•จ์ˆ˜ - NVL(NULL ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•  ๋ฐ์ดํ„ฐ or ์นผ๋Ÿผ, NULL์ผ ๊ฒฝ

nanarin.tistory.com

(6) ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” DECODE ํ•จ์ˆ˜์™€ CASE๋ฌธ

 

[SQL] ์˜ค๋ผํด ๋‚ด์žฅ ํ•จ์ˆ˜ - DECODE ํ•จ์ˆ˜์™€ CASE ๋ฌธ

1. DECODE ํ•จ์ˆ˜ - ๊ธฐ์ค€์ด ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ์ง€์ •ํ•œ ํ›„ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ - ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” if ์กฐ๊ฑด๋ฌธ ๋˜๋Š” switch-case ๋ฌธ๊ณผ ์œ ์‚ฌ - ๋งˆ์ง€๋ง‰์˜ '์œ„ ์กฐ

nanarin.tistory.com