在mysql数据类型十进制(n,m)中n和m的含义的详细解释

在mysql数据类型十进制(n,m)中n和m的含义的详细解释
一位同事问MySQL,在数据类型十进制(n,m)中,n和m分别是什么意思。显然,m是小数点后的十进制数字,但是小数点前的最大数字,还是小数部分之后的最大数字这并不是真的被记住,因此创建了测试表来验证它,结果如下:
试验台,该seller_cost字段定义为十进制(14,2)
创建表(` test_decimal `
int(11)不为空,
` seller_cost `十进制(14,2)默认为空
InnoDB引擎=默认的字符集utf8)
起初,表中的内容是空的。
MySQL SELECT * FROM test_decimal >;
空集(0秒)
整数部分的插入长度为14位数,超出范围的错误报告结束。
MySQL >插入test_decimal(ID,seller_cost)值(112345678901234);
错误1264(22003):超出范围值column'seller_cost'at排1
插入一个整数长度为12的数字,该数字可以正确插入。
MySQL >插入test_decimal(ID,seller_cost)值(1123456789012);
查询OK,1行受影响(0秒)
查询表显示整数值由MySQL插入最后补充一个MySQL decimal.00
MySQL SELECT * FROM test_decimal >;
+——+ ----------------- +
| ID | seller_cost |
+——+ ----------------- +
| 1 | 123456789012 |
+——+ ----------------- +
1行集(0秒)
继续插入整数部分的12部分。小数部分5部分的数字可以成功插入,但有警告。警告表明小数部分已被截断,并被截断为小数点后两位。
MySQL >插入test_decimal(ID,seller_cost)值(1123456789012.1234);
查询OK,1行受影响,1警告(0秒)

显示警告;
+ + + + ------- ------ --------------------------------------------------
级别代码信息| | | |
+ + + + ------- ------ --------------------------------------------------
|注| |数据截断'1265 column'seller_cost行1 |
+ + + + ------- ------ --------------------------------------------------
1行集(0秒)

MySQL SELECT * FROM test_decimal >;
+——+ ----------------- +
| ID | seller_cost |
+——+ ----------------- +
| 1 | 123456789012 |
| 1 | 123456789012.12 |
+——+ ----------------- +
2行(0秒)
缩减整数部分的长度为2,小数部分的长度继续为5,可以成功地插入小数点,但小数部分被截断为两部分。
MySQL >插入test_decimal(ID,seller_cost)值(1,12.12345);
查询OK,1行受影响,1警告(0秒)

显示警告;
+ + + + ------- ------ --------------------------------------------------
级别代码信息| | | |
+ + + + ------- ------ --------------------------------------------------
|注| |数据截断'1265 column'seller_cost行1 |
+ + + + ------- ------ --------------------------------------------------
1行集(0秒)

MySQL SELECT * FROM test_decimal >;
+——+ ----------------- +
| ID | seller_cost |
+——+ ----------------- +
| 1 | 123456789012 |
| 1 | 123456789012.12 |
| 1 | 12.12 |
+——+ ----------------- +
3行(0秒)
要插入小于两个数字的小数点,可以正确插入,小数部分自动完成为2。
MySQL >插入test_decimal(ID,seller_cost)值(1,12.1);
查询OK,1行受影响(0秒)

MySQL SELECT * FROM test_decimal >;
+——+ ----------------- +
| ID | seller_cost |
+——+ ----------------- +
| 1 | 123456789012 |
| 1 | 123456789012.12 |
| 1 | 12.12 |
| 1 | 12.10 |
+——+ ----------------- +
4行(0秒)
总之,在十进制(n,m)中,m值是小数部分的数字。如果插入值没有指定小数部分或小数部分不足,m位将自动填充m位小数。如果插入值的分数超过我,然后将截断和拦截M十进制数字。n是整数部分和小数部分,这是总长度的整数部分插入不能超过n-m位。否则,它将无法成功插入,它将报告超出范围的错误。

总结

以上是对MySQL数据类型的小数的详细解释的意义的全部内容(n,m)分别为N和M,希望对你有帮助。有兴趣的朋友可以继续参考这个网站:用法或句子在MySQL,Redis和MySQL等之间的区别。有什么问题你可以在任何时间离开的消息,萧边将及时给您回复。谢谢各位朋友的支持!

tag:数据类型解释十进制含义详细

相关内容