天天看点

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一、作用二、语法三、示例

继续阅读