当前位置: 代码网 > it编程>数据库>Mysql > MySQL中int(10) 的 10代表什么

MySQL中int(10) 的 10代表什么

2026年02月12日 Mysql 我要评论
在 mysql 中,我们定义int类型时需要设置长度,比如int(10),那么10 到底代表什么?如果超过这个范围会出现什么问题?这篇文章我们来详细地聊一聊。1. 含义在数据类型如 int 后面的括号

在 mysql 中,我们定义int类型时需要设置长度,比如int(10),那么10 到底代表什么?如果超过这个范围会出现什么问题?这篇文章我们来详细地聊一聊。

1. 含义

在数据类型如 int 后面的括号中的数字(例如 int(10))指定了显示宽度,即当使用 zerofill 属性时,系统会在数值前补零以达到指定的宽度。

  • 存储空间int 数据类型总是占用 4 字节(32 位),无论显示宽度是多少。
  • 取值范围:对于有符号的 int,范围是 -21474836482147483647;对于无符号的 int unsigned,范围是 04294967295。显示宽度不会改变这一范围。

2.zerofill的应用

当在 int 类型后使用 zerofill 时,mysql 会在数值前补零,以符合指定的显示宽度。如下示例:

create table users (
  id int(10) zerofill,
  name varchar(50)
);

插入数据:

insert into users (id, name) values (123, 'alice');

查询结果:

+-----------+-------+
| id        | name  |
+-----------+-------+
| 0000000123 | alice |
+-----------+-------+

在这个例子中,id 字段显示为 0000000123,达到 10 位宽度。

3.mysql 8.0.17 及以后的变化

mysql 8.0.17 版本开始,整数类型的显示宽度被废弃(deprecated),即使指定了显示宽度,默认情况下也不再影响存储或显示。这意味着:

  • 影响:不再推荐在整数类型后指定显示宽度,如 int(10) 中的 10 将被忽略,除非配合 zerofill 使用。

  • 推荐做法:直接使用 int 而无需指定显示宽度,除非确实需要与现有系统兼容或有特殊需求。

为了更好地理解int,下面通过几个例子详细解释。

创建表并插入数据:

create table example (
    id int(10) not null,
    name varchar(50)
);

insert into example (id, name) values (1, 'john'), (123456, 'jane');

查询显示:

select * from example;

结果:

+-------+-------+
| id    | name  |
+-------+-------+
|     1 | john  |
| 123456 | jane  |
+-------+-------+

在没有使用 zerofill 的情况下,显示宽度 10 并未影响输出格式。

使用 zerofill 的情况:

create table example_zf (
    id int(10) zerofill not null,
    name varchar(50)
);

insert into example_zf (id, name) values (1, 'john'), (123456, 'jane');

select * from example_zf;

结果:

+-----------+-------+
| id        | name  |
+-----------+-------+
| 0000000001 | john  |
| 0000123456 | jane  |
+-----------+-------+

这里,id 字段根据显示宽度 10 补充了前导零。

注意:由于 mysql 8.0.17 及以后的版本中显示宽度被废弃,建议在设计数据库时避免依赖显示宽度,除非有明确的需求和兼容性考虑。

5. 总结

  • int(10) 中的 10 代表的是显示宽度,它用于在与 zerofill 一起使用时补充前导零。
  • 不影响数值的存储大小或取值范围。
  • 在 mysql 8.0.17 及以后版本中,整数类型的显示宽度被废弃,建议不再使用这种方式指定宽度,除非有特定需求。

到此这篇关于mysql中int(10) 的 10代表什么的文章就介绍到这了,更多相关mysql int(10) 内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com