티스토리 뷰

DB/MySQL

단일 행 함수 — 숫자

태로미 2023. 2. 7. 19:10

 

 

 

 

 

 

 

 

 

 

📍   단일 행 함수 —   숫자

 

 

 

 

 

 

 

 

 

 

▶   ROUND   /   TRUNCATE

   ROUND        (숫자, 반올림할 자리)   –  숫자를 반올림할 자리까지 반올림을 해주는 함수
  –  반올림할 자리 생략 시 일의 자리로 반올림함
  –  소수점을 기준으로 양수(오른쪽), 음수(왼쪽), 0(소수점)
   TRUNCATE   (숫자, 버림할 자리)   –  숫자를 버림할 자리까지 남기고 버림을 해주는 함수
  –  소수점을 기준으로 양수(오른쪽), 음수(왼쪽), 0(소수점)

EX1   )   round 사용

SELECT round(45.923, 2), round(45.923, 0), round(45.923, -1);

   실행 결과

→   반올림할 자리가 양수면 소수점기준 오른쪽부터 자리를 정하고,
      음수면 소수점기준 왼쪽부터 자리를 정하고,
      0이면 소수점 자체를 기준으로 반올림하여 정수로 만듬.

 

 

 

EX2   )   truncate 사용

SELECT truncate(45.923, 2), truncate(45.923, 0), truncate(45.923, -1);

   실행 결과

→   round와 기준은 동일하며, 반올림을 할 지 버릴지가 다름.
→   해당하는 자리수부터 값을 버림.

 

 

 

 

 

 

 

 


▶   CEIL   /   FLOOR

  CEIL        (숫자)   –  일의 자리로 올림.
  –  소수점단위를 무조건 올려서 정수로 만들어줌.
  FLOOR   (숫자)   –  일의 자리까지 버림.
  – 소수점단위를 무조건 버려서 정수로 만들어줌.
  –  truncate는 버림할 자리를 고를 수 있지만 얘는 못 고름.

EX1   )   CEIL 사용

SELECT ceil(45.923), ceil(52.1);

   실행 결과

 

 

 

EX2   )   FLOOR 사용

SELECT floor(45.923), floor(52.1);

   실행 결과

 

 

 

 

 

 

 

 

 


▶   MOD (숫자1,  숫자2)

–  숫자1을 숫자2로 나눈 나머지를 반환.


EX1   )   나머지 연산자( % ) & 나누기 연산자( / )와 비교

SELECT mod(157, 10), 157 MOD 10, 157 % 10, 157 / 10;

✓   실행 결과

 

—   157 / 10의 몫이 '15.7000'으로 소수점 자리를 없애서 앞의 연산과 같이 정수로 만들고 싶음.

SELECT mod(157, 10), 157 MOD 10, 157 % 10, truncate((157 / 10), 0);

   실행 결과

→   MOD는 나머지를 반환하는 함수이므로, % 나머지 연산자와 같은 결과가 나옴.
→   몫이 소수점으로 나오므로 소수점을 버려서 나머지와 같은 정수타입으로 만들어줌.

 

 

 

EX2   )   테이블에 출력

SELECT last_name, salary, mod(salary, 5000)
FROM employees
WHERE job_id = 'SA_REP';

   실행 결과

→   salary를 5000으로 나눴을 때 4500의 값이 나온다는건 몫이 없다는 뜻.

 

 

 

EX3   )   짝수인지 홀수인지 확인

SELECT employee_id, mod(employee_id, 2)
FROM employees;

   실행 결과

→   숫자를 2로 나누었을 때, 나머지가 1이라면 홀수, 0이라면 짝수로 판별 가능하므로,
       MOD를 사용해 2로 나누었을 때의 나머지 값으로 홀짝 판별이 가능함.

 

 

 

EX3-1   )   사번이 짝수인 사원을 출력해보기

SELECT employee_id, last_name
FROM employees
WHERE mod(employee_id, 2) = 0;

✓   실행 결과

→   각 절이 가진 특징을 알면 쉽게 풀 수 있는 문제
      SELECT절은 출력 부분, FROM절은 테이블 선택 부분, WHERE절은 비교 조건 작성 부분.

 

 

 

 

 

 

 

 

 


▶   ABS (숫자)

–  숫자의 절대 값(absolute)을 반환


EX   )

SELECT abs(-5), abs(5), abs(-4.5);

✓   실행 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


▶   POWER   /   POW  (숫자, 제곱값)

–  숫자의 제곱 값(거듭 제곱)을 계산하여 반환.

 


EX   )

SELECT power(2, 3), power(8, 13);

✓   실행 결과

SELECT pow(4, 1), pow(4, 3), pow(5, 0);

✓   실행 결과

→   pow(a, b)에서 a는 밑의값, b는 지수값.
→   pow(5, 0),  모든 수의 0승은 '1'

 

 

 

 

 

 

 

 

 


▶   SIGN  (숫자)

–  양수인지 음수인지 0인지 판별해주므로, 주로 판별하는 목적으로 많이 사용함.
–  숫자가 양수면 1, 음수면 -1, 0이면 0을 반환.


EX   )

SELECT sign(3), sign(-3), sign(4.26), sign(-4.26), sign(0);

   실행 결과

 

 

 

 

 

 

 

 

 

 

'DB > MySQL' 카테고리의 다른 글

서브쿼리 (SubQuery)  (0) 2023.03.14
그룹 함수 — 그룹화 (GROUP BY 절 / HAVING 절)  (0) 2023.03.14
단일 행 함수 — 문자  (0) 2023.02.07
JOIN (Self-Join / 비표준 join)  (0) 2023.02.02
ORDER BY절  (0) 2023.02.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함