数据库中int 10 10代表什么长度限制?
- 内容介绍
- 文章标签
- 相关推荐
在使用 MySQL 等关系型数据库时很多开发者都会看到类似 int 的字段定义,却不确定它到底代表什么。
1️⃣ 先说清楚:int 并不是“只能存 10 位整数”
痛点提示:如果你以为宽度会限制数值范围,你的表设计很可能会出现意外的溢出错误。
int 是一种 4 字节有符号整数。默认可以存储 -2,147,483,648 到 2,147,483,647 的数值。括号里的数字 10 只是显示宽度它告诉数据库在结果集里用至少 10 个字符来展示该列的值。
2️⃣ 显示宽度对数据本身没有影响
痛点提示:你可能在查询结果中看到前面补零的现象,却没有意识到这并不是存储方式导致的。
-
存储大小不变:无论宽度是多少,
int都占用 4 字节。 -
显示格式化:`SELECT LPAD FROM users` 就是把
's display width 拿出来做格式化。怎么说呢, - No truncation:If value has more than 10 digits。MySQL still stores full value;only display may truncate.
A 简单演示
INSERT INTO users VALUES;SELECT id,name,LENGTH AS len。
在使用 MySQL 等关系型数据库时很多开发者都会看到类似 int 的字段定义,却不确定它到底代表什么。
1️⃣ 先说清楚:int 并不是“只能存 10 位整数”
痛点提示:如果你以为宽度会限制数值范围,你的表设计很可能会出现意外的溢出错误。
int 是一种 4 字节有符号整数。默认可以存储 -2,147,483,648 到 2,147,483,647 的数值。括号里的数字 10 只是显示宽度它告诉数据库在结果集里用至少 10 个字符来展示该列的值。
2️⃣ 显示宽度对数据本身没有影响
痛点提示:你可能在查询结果中看到前面补零的现象,却没有意识到这并不是存储方式导致的。
-
存储大小不变:无论宽度是多少,
int都占用 4 字节。 -
显示格式化:`SELECT LPAD FROM users` 就是把
's display width 拿出来做格式化。怎么说呢, - No truncation:If value has more than 10 digits。MySQL still stores full value;only display may truncate.
A 简单演示
INSERT INTO users VALUES;SELECT id,name,LENGTH AS len。

