MySQL-int(2)和int(4)的区别

问题

  • int(1) int(4) 中的作用是做什么

概述

int(1),int(4)括号中的数字是为了填充长度空缺的长度。

int(1)和int(4)

下面两小章节来自参考资料 

浮点型的长度

浮点型"的长度是用来限制数字存储范围的. 比如 float(3,2) 只能够写入 0.00~999.99.

整型的长度

"整型"的长度并不会限制存储的数字范围. 比如, int 和 int(3) 的存储范围都是 -2147483648 ~ 2147483647, int unsigned 和 int(3) unsigned 的存储范围都是0 ~ 4294967295.

"整型"的长度实际上可以理解为"显示长度", 如果该字段开启 "Zerofill/补零"就能很明显地知道它的作用.

比如, a b c d 分别表示 int(1) int(2) int(3) int(3) zerofill, 那么实际存入数据库的数据是这样的:

| v  | a  |  b  |  c |  d |
+-----+-----+-----+-----+-----+
| 1  | 1  |  1  |  1 | 001 |
| 10  | 10  | 10  |  10 | 010 |
| 100 | 100 | 100 | 100 | 100 |

PS. 如果开启 "Zerofill/补零", 则自动会默认为 "Unsigned/非负数".

作用

《高性能MySQL》 中的说明

MySQL 可以为整数类型指定宽度, 例如 INT(11), 对大多数应用这是没有意义的: 它不会限制值的合法范围, 只是规定了 MySQL 的一些交互工具(例如 MySQL 命令行客户端)用来显示字符的个数. 对于存储和计算来说, INT(1) 和 INT(20) 是相同的

参考资料 :

posted @ 2020-11-06 17:59  float123  阅读(5738)  评论(0编辑  收藏  举报