MySQL은 다양한 수학 함수를 제공하여 숫자 데이터의 계산, 변환, 분석을 효율적으로 도와줍니다. 이 글에서는 올림/내림, 지수/로그, 삼각함수, 무작위 수 생성 등 핵심 수학 함수들을 예제와 함께 설명합니다.
🔢 1. 올림과 내림
| 함수명 |
설명 |
예제 결과 |
FLOOR(X) |
X보다 작거나 같은 가장 큰 정수 반환 |
FLOOR(10.95) → 10 |
CEIL(X) |
X보다 크거나 같은 가장 작은 정수 반환 |
CEIL(10.95) → 11 |
ROUND(X,D) |
X를 반올림. D는 소수 자릿수 (기본=0) |
ROUND(10.49) → 10, ROUND(10.5) → 11 |
SELECT FLOOR(10.95), CEIL(10.95), ROUND(10.49), ROUND(10.5);
🧮 2. 지수와 로그
| 함수명 |
설명 |
예제 결과 |
SQRT(X) |
X의 양의 제곱근 반환 |
SQRT(4) → 2 |
POW(X, Y) |
X의 Y 거듭제곱 (POWER도 동일) |
POW(2, 3) → 8 |
EXP(X) |
e의 X 거듭제곱 |
EXP(3) → 20.085 |
LOG(X) |
X의 자연로그 (밑: e) |
LOG(3) → 1.099 |
SELECT SQRT(4), POW(2, 3), EXP(3), LOG(3);
📐 3. 삼각 함수
| 함수명 |
설명 |
예제 결과 |
SIN(X) |
X의 사인값 반환 |
SIN(PI()/2) → 1 |
COS(X) |
X의 코사인값 반환 |
COS(PI()) → -1 |
TAN(X) |
X의 탄젠트값 반환 |
TAN(PI()/4) → 0.99999999 |
PI() |
π 값 반환 |
PI() → 3.14159... |
SELECT SIN(PI()/2), COS(PI()), TAN(PI()/4);
➕ 4. 기타 수학 함수
| 함수명 |
설명 |
예제 결과 |
ABS(X) |
X의 절댓값 반환 |
ABS(-3) → 3 |
RAND() |
0 이상 1 미만의 무작위 실수 반환 |
RAND() → 0.7218... |
ROUND(RAND()*100, 0) |
0~100 사이 무작위 정수 생성 |
결과: 0~100 중 하나 (예: 43) |
SELECT ABS(-3), ROUND(RAND()*100, 0);
📋 요약 테이블
| 함수 |
설명 |
예시 |
FLOOR(X) |
내림 처리 |
FLOOR(10.95) → 10 |
CEIL(X) |
올림 처리 |
CEIL(10.95) → 11 |
ROUND(X,D) |
반올림 (소수 D자리까지) |
ROUND(10.5) → 11 |
SQRT(X) |
제곱근 반환 |
SQRT(9) → 3 |
POW(X,Y) |
거듭제곱 반환 |
POW(2, 4) → 16 |
EXP(X) |
e의 X승 반환 |
EXP(1) → 2.718... |
LOG(X) |
자연로그 반환 |
LOG(10) → 2.302... |
SIN(X) |
사인 반환 (단위: 라디안) |
SIN(PI()/2) → 1 |
COS(X) |
코사인 반환 |
COS(PI()) → -1 |
TAN(X) |
탄젠트 반환 |
TAN(PI()/4) → 1 |
PI() |
π 반환 |
PI() → 3.141592... |
ABS(X) |
절댓값 반환 |
ABS(-10) → 10 |
RAND() |
무작위 실수 (0~1) |
RAND() → 0.62 |
질문 정리
Q1. 소수 셋째 자리에서 반올림하고 싶으면?
SELECT ROUND(123.4567, 2); -- 결과: 123.46
Q2. RAND()로 고정된 난수 생성 가능?
- 가능:
RAND(시드값) 사용 시 항상 동일한 난수 반환
SELECT RAND(10), RAND(10);
-- 두 결과 모두 동일한 숫자
Q3. 로그 계산 시 밑이 10이면?
LOG10() 함수 사용 가능 (LOG(X)는 자연로그)
SELECT LOG10(100); -- 결과: 2
댓글남기기