MySQL - DataTypes : DECIMAL

임재현·2021년 5월 7일
0

MySQL

목록 보기
36/52

Udemy - The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert를 수강하며 정리하는 글

INT : WHOLE NUMBERS

  • It works with whole numbers so it's useful if you're working with thins where you need them or want them to be whole numbers where decimals don't matter.
    가장 많이 쓰임.

DECIMAL

공식문서

DECIMAL(M, D)에서 M에 해당하는 5의 경우 총 5자리의 숫자를 사용할 수 있다는 의미이고, D에 해당하는 2는 소수점을 2자리까지 지정하겠다라는 의미이다. 그렇다면 정수의 타입은 M-D(5-2)까지 저장할 수 있다는 것을 유추할 수 있다. 그렇게 DECIMAL(5,2) 데이터 타입의 범위는 -999.99 ~ 999.99이다.
https://blog.martinwork.co.kr/mysql/2020/01/17/mysql-data-type.html 도 참조

mysql> INSERT INTO items(price) VALUES(7);
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO items(price) VALUES(10);
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO items(price) VALUES(100);
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO items(price) VALUES(1000);
ERROR 1264 (22003): Out of range value for column 'price' at row 1

1000은 1000.00으로 총 6자리이다. 그래서 들어가지 않는다.

mysql> INSERT INTO items(price) VALUES(999.99);
Query OK, 1 row affected (0.00 sec)

999.99까지는 들어간다.

mysql> INSERT INTO items(price) VALUES(999.999);
ERROR 1264 (22003): Out of range value for column 'price' at row 1

하지만 이렇게 999.999는 들어가지 않는다.

mysql> SELECT * FROM items;
+--------+
| price  |
+--------+
|   7.00 |
|  10.00 |
| 100.00 |
| 999.99 |
+--------+
4 rows in set (0.00 sec)
profile
임재현입니다.

0개의 댓글