AIDE技术官网
AIDEZY.COM

MySQL数据类型DECIMAL用法详解

MySQL数据类型DECIMAL用法详解 云开发 第1张

 

MySQL数据类型DECIMAL用法

 

MySQL DECIMAL数据类型用于在数据库中存储精确的数值。我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据。

要定义数据类型为DECIMAL的列,请使用以下语法:

decimal(M,D)

它有两个参数,M也代表总位数,D也代表小数后面的位数,他是把小数点前小数点后分开为2个整形来存储的,所以不会有损失,所以他叫定点型。

 

  • P是表示有效数字数的精度。 P范围为1〜65
  • D是表示小数点后的位数。 D的范围是0~30。MySQL要求D小于或等于(<=)P

DECIMAL(P,D)表示列可以存储D位小数的P位数。十进制列的实际范围取决于精度和刻度。

与INT数据类型一样,DECIMAL类型也具有UNSIGNEDZEROFILL属性。 如果使用UNSIGNED属性,则DECIMAL UNSIGNED的列将不接受负值。

如果使用ZEROFILL,MySQL将把显示值填充到0以显示由列定义指定的宽度。 另外,如果我们对DECIMAL列使用ZERO FILL,MySQL将自动将UNSIGNED属性添加到列。

以下示例使用DECIMAL数据类型定义的一个叫作amount的列。

 

 

下面我们就来实操:

创建表:

mysql> create table de(
    -> de decimal(9,2))charset =utf8;


Query OK, 0 rows affected (0.15 sec)

表我们已经创建成功了。

 

我们再来查看一下表的结构:

mysql> desc de;


+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| de | decimal(9,2) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+


1 row in set (0.01 sec)

我们可以发现有一个de列他的属性正式我们需要的decimal,我们给他设置了属性为(9,2)。

他的意思就是我们小数点前面最多只能存7位数字,小数点后面只能存2位,他的总位数为9位。

下面我们就来给他插入数据:

mysql> insert into de(de) values(1111111.11);

Query OK, 1 row affected (0.00 sec)

这里我们插入的是1111111.11它提示插入成功了,好,我们再插入一个数据

 

mysql> insert into de(de) values(11111111.11);

Query OK, 1 row affected, 1 warning (0.00 sec)

这次我们插入1111111.11他还是提示插入成功,可以发现这里的总位数已经超过9位,他怎么会插入成功呢?

 

好,下面我们就把它查询出来看看:

mysql> select * from de;

+------------+
| de |
+------------+
| 1111111.11 |
| 9999999.99 |
+------------+

2 rows in set (0.00 sec)

可以发现我们刚刚插入的1111111.11他自动转换为9999999.99了这是为什么?因为我们设置了decimal他的属性为(9,2),所以他只能存入小数点前和后总共9位数的数字,这里他自动就给他转换了,最大就是9999999.99了。

 

 

 

 

搜一下

海报生成 赞(1) 打赏

来都来了!评论一下呗! 抢沙发

  • QQ (自动获取名称头像等信息|选填)
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址 (选填)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

忘记密码 ?

切换登录

注册