λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • μž₯원읡 κΈ°μˆ λΈ”λ‘œκ·Έ
πŸ”¬web 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)

μΆ”κ°€μ μœΌλ‘œ μœ„μ™€ 같은 ν•¨μˆ˜κ°€ μ‘΄μž¬ν•œλ‹€.

λŒ“κΈ€