天天看點

Mysql——》decimal一、作用二、文法三、示例

推薦連結:

    總結——》【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 );
           
Mysql——》decimal一、作用二、文法三、示例
Mysql——》decimal一、作用二、文法三、示例

繼續閱讀