๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ”ฌapplication/- Database

[SQL๋ฌธ ๊ธฐ์ดˆ] SQL-SELCET ๋ฌธ์˜ ์‚ฌ์šฉ๋ฒ• ๋ฐ ์˜ˆ์ œ (4) [DUAL ๋ฐ SQL ๋‚ด์žฅ ํ•จ์ˆ˜(์ˆซ์ž ํ•จ์ˆ˜)]

by Wonit 2020. 4. 15.

์ง€๋‚œ ์‹œ๊ฐ„์— ํ•™์Šตํ•œ ๋‚ด์šฉ์— ์ถ”๊ฐ€์ ์œผ๋กœ SELECT ๋ฌธ์˜ ์‚ฌ์šฉ์„ ์‚ดํŽด๋ณด์ž.

SELECT์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์ „์ œ ๋˜์–ด์•ผ ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์„ ์ดํ•ดํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋งํฌ์— ๊ฐ€์…”์„œ ํ•™์Šต์„ ํ•˜์‹œ๊ณ  ์˜ค์‹œ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

SQL ํ•จ์ˆ˜

 

SQL ํ•จ์ˆ˜๋Š”

 

  1. ์นผ๋Ÿผ์˜ ๊ฐ’์ด๋‚˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ
  2. ์ˆซ์ž ๋˜๋Š” ๋‚ ์งœ ๋ฐ ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ
  3. ํ•˜๋‚˜ ์ด์ƒ์˜ ํ–‰์— ๋Œ€ํ•œ ์ง‘๊ณ„๋ฅผ ์›ํ•˜๋Š” ๊ฒฝ์šฐ

๋กœ ๋‚˜๋ˆ„์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ทธ ์ค‘์— ์šฐ๋ฆฌ๋Š” ์ˆซ์ž ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ•ด๋ณด์ž.

 

ํ…Œ์ด๋ธ”์€ ์ง€๋‚œ ์‹œ๊ฐ„์— ์‚ฌ์šฉํ–ˆ๋˜ emp ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

ํ•จ์ˆ˜ ์‚ฌ์šฉ ํ˜•์‹

 

ํ•จ์ˆ˜๋Š” sql ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด๋Š” ๊ณณ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค.

function_name ( column | expression, {arg1, arg2, ...})
  • function_name : ๋‹จ์ผ ํ–‰ ํ•จ์ˆ˜ ์ด๋ฆ„
  • column : ์นผ๋Ÿผ ์ด๋ฆ„
  • expression : ๋ฌธ์ž์—ด ๋˜๋Š” ํ‘œํ˜„์‹
  • arg1, arg2... : ํ•จ์ˆ˜์˜ ์ธ์ˆ˜

ํ•จ์ˆ˜ ์‚ฌ์šฉ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์กฐ๊ธˆ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋‹ค๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์ด๋‹ค.

 

์ˆซ์ž ํ•จ์ˆ˜

์ˆซ์ž ํ•จ์ˆ˜์— ๊ฐ„๋‹จํ•œ ์ˆ˜ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ์œผ๋ฉด

SELECT * 

 

ROUND

0์˜ ์ž๋ฆฌ ๋ถ€ํ„ฐ ์ง€์ •ํ•œ ์ž๋ฆฌ ์ดํ•˜์—์„œ ๋ฐ˜์˜ฌ๋ฆผ์„ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

ROUND(์ธ์ˆ˜, ์ž๋ฆฌ ์ˆ˜)
์ง€๋‚œ ์‹œ๊ฐ„์— ํ–ˆ๋˜ emp ํ…Œ์ด๋ธ”์—์„œ ์›”๊ธ‰๊ณผ ์ƒ์—ฌ๊ธˆ์„ ๋”ํ•œ ์—ฐ๋ด‰ ์„ ๊ตฌํ•ด์„œ 10์˜ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ์„ ์ˆ˜ํ–‰ํ•ด๋ณด์ž.

์ž๋ฆฌ ์ˆ˜์— -1์„ ํ•˜๋ฉด 1์˜ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ์„ ์ˆ˜ํ–‰ํ•ด๋ผ ๋ผ๋Š” ๋œป์ด๋‹ค.

ROUND ํ•จ์ˆ˜

์†Œ์ˆซ์  -2๋ฒˆ์งธ ์ž๋ฆฌ, ์ฆ‰ ์†Œ์ˆซ์  0๋ฒˆ์งธ ๋ถ€ํ„ฐ -2๋ฒˆ์งธ ์ž๋ฆฌ์ˆ˜ = 10์˜ ์ž๋ฆฌ์ˆ˜ ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด 12.12์˜ ์†Œ์ˆซ์  ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ROUND(12.12, 1)์ด๋ผ๊ณ  ํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ์ด ์ˆ˜ํ–‰๋œ๋‹ค.

 

TRUNC

์ง€์ •๋œ ์ž๋ฆฌ ์ดํ•˜์—์„œ ์ ˆ์‚ญํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

 

ROUND ํ•จ์ˆ˜์™€ TRUNC ํ•จ์ˆ˜์˜ ์ฐจ์ด์ ์€ ROUND ํ•จ์ˆ˜๋Š” ์ง€์ •๋œ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ถœ๋ ฅ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด๊ณ  TRUNC๋Š” ์ง€์ • ์ž๋ฆฌ์—์„œ ๋‚˜๋จธ์ง€ ์ธ์ˆ˜๋ฅผ ์—†์• ๊ณ  ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ํฐ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

 

TRUNC(์ธ์ˆ˜, ์ž๋ฆฌ ์ˆ˜)
์ด๋ฒˆ์—๋Š” student ํ…Œ์ด๋ธ”๋กœ ๊ฐ€์„œ ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ์˜ ์ƒ๋…„์›”์ผ๋งŒ ์ถœ๋ ฅ์‹œ์ผœ ๋ณด์ž.

TRUNC ํ•จ์ˆ˜

ํ˜„์žฌ 7์ž๋ฆฌ ๋ถ€ํ„ฐ๋Š” 0์œผ๋กœ ์ฑ„์›Œ์กŒ๋Š”๋ฐ ๋‚˜๋จธ์ง€ ์ž๋ฆฌ์ˆ˜๊ฐ€ 0์œผ๋กœ ์ฑ„์›Œ์ง„ ๊ฒƒ์„ ์—†์•จ ์ˆ˜ ์žˆ์ง€๋งŒ ํ˜„์žฌ ๋ฐฐ์šฐ๋Š” ๋ชฉ์ ๊ณผ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ•œ๋‹ค.

 

MOD

m์„ n์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€

MOD(m, n)

๋‚˜๋จธ์ง€ ํ•จ์ˆ˜๋Š” dual ํ…Œ์ด๋ธ”์—์„œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๊ฒ ๋‹ค.

์ถ”๊ฐ€ ํ•จ์ˆ˜

 

CEIL ํ•จ์ˆ˜

  • ์ง€์ •ํ•œ ๊ฐ’๋ณด๋‹ค ํฐ ์ˆ˜์ค‘์— ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜
CEIL(n)

FLOOR ํ•จ์ˆ˜

  • ์ง€์ •๊ฐ„ ๊ฐ’ ๋ณด๋‹ค ์ž‘์€ ์ˆ˜ ์ค‘์— ๊ฐ€์žฅ ํฐ ์ •์ˆ˜
FLOOR(n)

ABS ํ•จ์ˆ˜
์ ˆ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜

ABS(n)

์ถ”๊ฐ€์ ์œผ๋กœ ์œ„์™€ ๊ฐ™์€ ํ•จ์ˆ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค.

๋Œ“๊ธ€