推薦連結:
總結——》【Java】
總結——》【Mysql】
總結——》【Redis】
總結——》【Kafka】
總結——》【Spring】
總結——》【SpringBoot】
總結——》【MyBatis、MyBatis-Plus】
Mysql——》decimal
- 一、作用
- 二、文法
- 三、示例
一、作用
存儲精确的數值
二、文法
decimal(p,d) 存儲d位小數的p位數
參數 | 描述 | 預設值 | 取值範圍 |
---|---|---|---|
p | 最大位數(包含小數點後的位數) | 10 | 1~65 |
d | 小數位數(小數點後的位數) | 0~30 |
三、示例
示例 | 最大位數 | 整數位數 | 小數位數 | 取值範圍(UNSIGNED) |
---|---|---|---|---|
decimal | 10 | 10 | -9999999999~9999999999 | |
decimal(3) | 3 | 3 | -999~999 | |
decimal(5,2) | 5 | 3 | 2 | -999.99~999.99 |
decimal(7,6) | 7 | 1 | 6 | -9.999999~9.999999 |
-- 建立表,定義資料類型
CREATE TABLE `test` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`area` decimal(10, 1) DEFAULT NULL COMMENT '面積',
PRIMARY KEY (`id`)
) COMMENT='測試表';
-- 修改資料類型
ALTER TABLE `test`
MODIFY COLUMN `area` decimal(5, 2) NULL DEFAULT NULL COMMENT '面積';
-- 插入資料
INSERT INTO test ( area ) VALUES ( 500.34 ),( 400 );
-- 查詢資料
select * from test;
-- 取值範圍之内,小數位多了,進行四舍五入
-- 取值範圍之外,直接報錯:Out of range value
-- 結果:500.34
INSERT INTO test ( area ) VALUES ( 500.344 );
-- 結果:500.35
INSERT INTO test ( area ) VALUES ( 500.349 );
-- 直接報錯:1264 - Out of range value for column 'area' at row 1
INSERT INTO test ( area ) VALUES ( 5000.34 );