登录
首页 >  数据库 >  MySQL

在MySQL中,INT(5)指的是一个具有整数数据类型的字段,其中5指定了显示宽度,但并不影响实际存储长度。INT类型的长度始终为4个字节,可以存储范围为-2,147,483,648到2,147,483,647的整数。因此,INT(5)和INT的存储长度是相同的,即4个字节。

来源:亿速云

时间:2023-05-09 20:12:31 354浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《在MySQL中,INT(5)指的是一个具有整数数据类型的字段,其中5指定了显示宽度,但并不影响实际存储长度。INT类型的长度始终为4个字节,可以存储范围为-2,147,483,648到2,147,483,647的整数。因此,INT(5)和INT的存储长度是相同的,即4个字节。》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

int(5)到底有是多长

在设计 mysql 表字段时,int(5) 表示是该字段长度为 5 吗?

如果你觉得是,那请你继续往下看,相信你会有新的收获的。

先来看一个实际例子

我们创建一个新表,表中只有一个主键 id 和一个 length 字段,其中 length 字段设置为 int(5) 。

#新建test表
CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `length` int(5) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

是不是 length 字段只能存储长度不超过 5 的数字呢,我们来插入一条数据试试。

我们插入一条较大的数据 123456789 ,这个数据一共有 9 位,看能否正常插入。

#插入一条大数据
insert into test (length) values (123456789);

结果证明 int(5) 能插入长度大于 5 的数据,所以现在可以肯定的是 int(5) 并不是代表数据的宽度。

#查看插入数据
mysql> select * from test;
+------------+-----------+
| id         | length    |
+------------+-----------+
|  1         | 123456789 |
+------------+-----------+

在 mysql 中 int 字段长度其实是固定的,就是 4 个字节,不管你 int(11)  还是 int(5) 字段长度就是固定的 4 个字节。

int(5) 其实是和另一个属性 zerofill 配合使用的,表示如果该字段值的宽度小于 5 时,会自动在前面补 0 ,如果宽度大于等于 5 ,那就不需要补 0 。

#int(5) length 字段添加了 zerofill 属性
mysql> select * from test;
+----+--------+
| id | length |
+----+--------+
|  1 |  00888 |
|  2 |  00012 |
|  3 |  12345 |
|  4 | 123456 |
+----+--------+

注意前提是给该字段添加了 zerofill 属性,不然 int(5) 不起作用。

#int(5) length 字段没有 zerofill 属性
mysql> select * from test;
+----+--------+
| id | length |
+----+--------+
|  1 |    888 |
|  2 |     12 |
|  3 |  12345 |
|  4 | 123456 |
+----+--------+

要想对整形字段设置长度,应该是选择 tinyint、smallint、mediumint、int、bigint 这几个类型,这几个整数类型才代表了固定的长度,具体长度请看下面这个表格。

在MySQL中,INT(5)指的是一个具有整数数据类型的字段,其中5指定了显示宽度,但并不影响实际存储长度。INT类型的长度始终为4个字节,可以存储范围为-2,147,483,648到2,147,483,647的整数。因此,INT(5)和INT的存储长度是相同的,即4个字节。

注意如果要存储带符号的整形数,是不支持 zerofill 属性的,会自动转换为 0,在一些涉及递减的业务中需要注意考虑一下。

以上就是《在MySQL中,INT(5)指的是一个具有整数数据类型的字段,其中5指定了显示宽度,但并不影响实际存储长度。INT类型的长度始终为4个字节,可以存储范围为-2,147,483,648到2,147,483,647的整数。因此,INT(5)和INT的存储长度是相同的,即4个字节。》的详细内容,更多关于mysql的资料请关注golang学习网公众号!

声明:本文转载于:亿速云 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表