MySQL 中 int(11) 的 11 表示什么?
MySQL 中 int(11) 的 11 表示什么?
在 MySQL 中,int(11)
中的 11
并不表示整数的取值范围,而是用于显示宽度(Display Width)。它的含义和具体影响如下:
1. 显示宽度的定义
- 显示宽度是指在使用
ZEROFILL
属性时,MySQL 返回查询结果时显示的最小数字宽度。 - 如果存储的整数值不足指定的宽度,会用零填充到指定宽度。
例如:
CREATE TABLE example (
id INT(11) ZEROFILL
);
INSERT INTO example (id) VALUES (123);
SELECT id FROM example;
结果:
00000000123
解释:
INT(11)
配合ZEROFILL
使用,表示输出宽度至少为 11 位,不足部分用0
填充。
2. 显示宽度的影响
- 显示宽度不会影响实际存储的数据大小,也不会限制可以存储的数值范围。
int(11)
的数值范围完全由INT
类型决定,为-2^31
到2^31-1
(约-21亿
到+21亿
)。
例如:
- 存储值为
1
或12345678901
,都会被正确保存,宽度只影响带ZEROFILL
的查询显示。
3. 显示宽度是否必要
- 在 MySQL 8.0 中,显示宽度已被废弃,对于整数类型(如
TINYINT
、SMALLINT
、INT
、BIGINT
),显示宽度不再生效。 - 原因:显示宽度仅影响数据输出的显示方式,而现代应用通常由客户端程序处理格式化显示,MySQL 保留此功能意义不大。
4. 取值范围与显示宽度的关系
显示宽度与整数类型的取值范围无关,取值范围由数据类型的大小决定:
数据类型 | 字节大小 | 有符号取值范围 | 无符号取值范围 |
---|---|---|---|
TINYINT | 1 | -128 ~ 127 | 0 ~ 255 |
SMALLINT | 2 | -32,768 ~ 32,767 | 0 ~ 65,535 |
INT | 4 | -2,147,483,648 ~ 2,147,483,647 | 0 ~ 4,294,967,295 |
BIGINT | 8 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 0 ~ 18,446,744,073,709,551,615 |
5. 示例
创建表:
CREATE TABLE demo (
id INT(11) ZEROFILL,
value INT(11)
);
插入数据:
INSERT INTO demo (id, value) VALUES (123, 4567);
查询数据:
SELECT id, value FROM demo;
结果:
id value 00000000123 4567
id
列因为使用了ZEROFILL
,不足 11 位用0
补齐。value
列没有ZEROFILL
,显示为实际存储的值。
6. 总结
int(11)
中的11
表示显示宽度,与数据存储大小或取值范围无关。- 显示宽度仅在配合
ZEROFILL
使用时有效,用于输出固定长度的数值。 - 从 MySQL 8.0 开始,显示宽度功能已废弃,建议避免依赖此特性。
MySQL 中 int(11) 的 11 表示什么?的更多相关文章
- mysql中int(M) tinyint(M)中M的作用
原先对mysql不太理解,但也没有报错.但理解的不够深入.这次补上. 原来以为int(11)是指11个字节,int(10)就是10个字节.我错了. http://zhidao.baidu.com/li ...
- mysql中int、bigint、smallint、tinyint 长度
mysql中int.bigint.smallint.tinyint 长度 bigint -2^63 (-9223372036854775808) 到 2^63-1 (92233720368547758 ...
- [转]MySQL中int(11)最大长度是多少?
原文地址:https://blog.csdn.net/allenjay11/article/details/76549503 今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添 ...
- [转载]MySQL中int(11)最大长度是多少?
原文地址:https://blog.csdn.net/allenjay11/article/details/76549503 今天在添加数据的时候,发现当数据类型为 int(11) 时,我当时让用户添 ...
- Mysql中int(1)的误解及说明
在mysql中使用int相关的数据类型时, 如果不太了解其存储方式, 会产生一些误用的情况. 如: 只保存0-9之间的数字, 可能会直接用int(1). 习惯性的以为int(1)就相当于varchar ...
- Mysql中int和varchar类型
int类型: int bigint smallint 和 tinyint 类型,如果创建新表时没有指定 int(M) 中的M时,默认分别是 : int ------- in ...
- mysql中int转varchar
这里要注意,cast(XX as varcahr(10))在mysql中不好使,要cast(XX as char(10))这样才好使
- Mysql 中 int(3) 和 int(11) 的区别
[1]int(3) 和 int(11)的区别(思维惯性认知错误) 这里的3或11代表的是存储在数据库中的具体的长度,总以为int(3)只能存储3个长度的数字,int(11)只会存储11个长度的数字. ...
- mysql中int(3)与int(11)有什么区别吗?
注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的. 其实当我们在选择使用int的类型的时 ...
- MySQL中int(11)的意思
参考文献:https://segmentfault.com/a/1190000012479448 int(11)中的11代表的是字符的显示宽度,在字段类型为int时,无论你显示宽度设置为多少,int类 ...
随机推荐
- Tinyfox 发生重大改版
于2015年6月首次公开发布.为配合Tinyfox的实际应用,在Tinyfox发布后相继推出了 Tinyfox.FastWebApi 和Tinyfox.WebSocket 两个关键的应用框架,构成了相 ...
- Oracle数据快照设置
1.1 手册目的 该手册主要目的是用于生产环境排查问题及恢复用户误操作删除数据及程序错误导致数据丢失使用. 1.2 查看Undo表空间参数 在命令窗口查询Undo表空间的快照参数 1 show par ...
- 云内GSLB技术及应用场景
本文分享自天翼云开发者社区<云内GSLB技术及应用场景>,作者:c****n 云业务容灾建设节奏一般是同城双活-异地双活-两地三中心(同城双活+异地多活),因为要解决的问题的复杂度和难度也 ...
- Python pika消费Rabbit MQ数据,慢消费引起的connection reset问题
问题描述 使用python pika框架,从Rabbit MQ消费数据时,遇到了connection reset的错误,错误内容如下: Traceback (most recent call last ...
- [记录点滴] 使用工具和命令对redis数据进行备份恢复
[记录点滴] 使用工具和命令对redis数据进行备份恢复 0x00 摘要 本文记录了如何使用工具对redis数据进行恢复备份,涉及的有Redis-Dump,MySQL,Redis管道命令. 0x01 ...
- Mac安装Flink
版本 Flink flink-1.13.1-bin-scala_2.11.tgz 依赖scala2.12 一.下载 https://archive.apache.org/dist/flink/ 解压 ...
- 赶上AI的大潮:在VSCode中使用DeepSeek编程的极简方法
1 赶上AI的大潮:在VSCode中使用DeepSeek编程的极简方法 1.1 背景 DeepSeek在春节期间突然大行其道,欣喜国力大增的同时,对于普通IT工作者,如何才能享受这一波AI红利,让 ...
- 技术前瞻: ECMAScript 2025 已定稿特性解析:让 JavaScript 更优雅
作为全球应用最广泛的编程语言之一,JavaScript 每年都在通过 ECMAScript 标准持续进化.2025 年,ECMAScript 再次带来多项重磅更新,本文将带你深入解读已正式定稿的核心特 ...
- mysql where条件:某时间字段为今天的sql语句
1.查询:注册时间为今天的所有用户数: select count(*) from customer where TO_DAYS(createtime) = TO_DAYS(NOW()) 2.获取当前时 ...
- QT5笔记: 28. SplashWindow 没听懂,无内容
没有说明这个SplashWindow咋用 大概小人愚笨 this->setWindowFlag(Qt::SplashScreen);莫非是这个?