首页
学习
活动
专区
圈层
工具
发布

mysql int类型默认长度为10吗

MySQL中的INT类型默认长度并不是10位。实际上,INT类型的长度是指显示宽度,也就是当数值长度不够时从左侧补充的空格数,这个长度并不影响实际存储的数据范围。INT类型的存储空间和数值范围是固定的,无论是否有显示宽度。

基础概念

  • 数据类型:MySQL中的数据类型定义了列中可以存储的数据的种类,以及数据的存储方式。
  • INT:整型,用于存储整数,包括有符号和无符号两种。
  • 显示宽度:指定了当数值长度不够时从左侧补充的空格数,最大宽度为255。

类型

  • TINYINT:1字节,范围(-128, 127)或(0, 255)。
  • SMALLINT:2字节,范围(-32768, 32767)或(0, 65535)。
  • MEDIUMINT:3字节,范围(-8388608, 8388607)或(0, 16777215)。
  • INT:4字节,范围(-2147483648, 2147483647)或(0, 4294967295)。
  • BIGINT:8字节,范围(-9223372036854775808, 9223372036854775807)或(0, 18446744073709551615)。

应用场景

INT类型通常用于存储不需要小数部分的数值,如年龄、ID号、数量等。

常见问题及解决方法

问题:为什么设置了显示宽度,但实际存储的数值长度不变?

  • 原因:显示宽度只是用来控制输出格式的,不影响实际存储的数据范围和长度。
  • 解决方法:如果需要控制存储的数值长度,可以考虑使用其他类型,如SMALLINTMEDIUMINT等,或者使用BIGINT来存储更大的数值。

示例代码

代码语言:txt
复制
CREATE TABLE example (
    id INT(5) UNSIGNED AUTO_INCREMENT,
    age INT(3),
    PRIMARY KEY (id)
);

在这个例子中,id列的显示宽度设置为5,age列的显示宽度设置为3。即使设置了显示宽度,实际存储的数值长度不会改变。

参考链接

希望这些信息能帮助你更好地理解MySQL中的INT类型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

详解 mysql int 类型的长度值问题

秉着好奇心, 打开了 google ~ 引入大神的解答. mysql 在建表的时候 int 类型后的长度代表什么? 是该列允许存储值的最大宽度吗?...为什么我设置成 int(1), 也一样能存 10,100,1000 呢. 当时我虽然知道 int(1), 这个长度 1 并不代表允许存储的宽度, 但却没有一个合理的解释....所以我在网上查阅了一些资料, 也仔细的看了 mysql 手册关于 int data type 的说法. 以下是每个整数类型的存储和范围 (来自 mysql 手册) ?...我们拿 int 类型为例: int 类型, 占用字节数为 4byte, 学过计算机原理的同学应该知道, 字节 (byte) 并非是计算机存储的最小单位, 还有比字节 (byte) 更小的单位, 也就是位...计算机存储单位的换算: 1B=8b 1KB=1024B 1MB=1024KB 那么根据 int 类型允许存储的字节数是 4 个字节, 我们就能换算出 intUNSIGNED(无符号) 类型的能存储的最小值为

5K20

MySql中int(10)与int(11)有什么区别吗?

0 1 引言 依稀还记得有次面试,有面试官问我int(10)与int(11)有什么区别,当时觉得就是长度的区别吧!面试官最后也没有给反馈,我也就以为自己答对了。...最后查出的结果是:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储 3个长度的数字,int(11)就会存储 11 个长度的数字,这是大错特错的。...int(10)也可以代表 2147483647 这个值int(11)也可以代表。 要查看出不同效果记得在创建类型的时候加 zerofill这个值,表示用 0 填充,否则看不出效果的。...当结合可选扩展属性 ZEROFILL 使用时, 默认补充的空格用零代替。例如,对于声明为 INT(5) ZEROFILL 的列,值 4 检索为 00004。...请注意如果在整数列保存超过显示宽度的一个值,当 MySQL 为复杂联接生成临时表时会遇到问题,因为在这些情况下 MySQL 相信数据适合原列宽度。

6.4K30
  • mysql类型int长度是11,最多可以有多少条数据?如果超过超过设计值会怎么样?

    mysql类型int长度是11,最多可以有多少条数据?如果超过超过设计值会怎么样大家好,我是星哥,今天查看数据库在表结构中看到id,设计是int,长度是11。...一、首先要区分两个概念:在 MySQL 中,定义字段时写成:INT(11)这里的 11 不是“长度限制”! 它只是显示宽度(Display Width),对实际存储范围没有任何影响。...INT(默认有符号)2,147,483,647插入时报错INT UNSIGNED4,294,967,295插入时报错BIGINT UNSIGNED18,446,744,073,709,551,615理论上几乎到不了...三、模拟过程举例CREATE TABLE t ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, value VARCHAR(10));​INSERT INTO...用 BIGINT(支持约 9.22×10¹⁸)

    94010

    关于mysql字段时间类型timestamp默认值为当前时间问题--Java学习网

    今天把应用部署到AWS上发现后台修改内容提交后程序报错,经过排查发现是更新数据的时候,有张数据表中的一个timestamp类型的字段默认值变成了"0000-00-00 00:00:00.000000"格式...将“explicit_defaults_for_timestamp”的值设置为ON。 2....“explicit_defaults_for_timestamp”的值依旧是OFF,也有两种方法可以禁用 1> 用DEFAULT子句该该列指定一个默认值 2> 为该列指定NULL属性...开发环境explicit_defaults_for_timestamp 的值是OFF 比对了下RDS中mysql的参数,发现这个参数值为0,因为rds中mysql的默认参数组是不允许修改的,所以创建个参数组...,会默认把default的参数组继承过来,当时并不知道这里的0和1是怎么对应on和off的,所以就把值改成了1.然后重启rds。

    3.2K20

    MySQL基础数据类型

    | #无符号,最大值为255 | 255 | #256存成了255 +------+ 有符号和无符号int 1.int默认为有符号 mysql...默认的显示宽度就是能够存储的最大的数据的长度,比如:int无符号类型,那么默认的显示宽度就是int(10),有符号的就是int(11),因为多了一个符号,所以我们没有必要指定整数类型的数据,没必要指定宽度...-1     有符号和无符号的最大数字需要的显示宽度均为10,而针对有符号的最小值则需要11位才能显示完全,所以int类型默认的显示宽度为11是非常合理的     最后:整形类型,其实没有必要指定显示宽度...,不是说好的char会补全吗,我设置的字段是char(4),那么长度应该都是4才对啊?...这次 LENGTH 函数返回的长度为 10。需要注意的是,LENGTH 函数返回的是字节长度,而不是字符长度。

    5.5K10

    数据库之表操作

    num int not null, primary key(nid,num) ) 主键 自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增... MySQL支持多种类型,大致可以分为四类:数值、字符串类型、日期/时间和其他类型 二进制类型: bit[(M)] 二进制位(101001),m表示二进制位的长度(1-64),...,与存储范围无关,所以我们使用默认的就可以了 有符号和无符号的最大数字需要的显示宽度均为10, 而针对有符号的最小值则需要11位才能显示完全,所以int类型默认的显示宽度为11是非常合理的...varchar(m) varchar 数据类型用于变长的字符串,可以包含最多达65535个字符(理论上可以,但是实际上在超出21845长度后,mysql会自动帮您转换数据类型为文本类型)...其中m代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。

    86820

    PHP 笔试 + 面试题

    arr[], int n) // n 为数组大小 { for (int i = 0; i < n - 1; i++) { // n-1 趟排序 for (int j = i...int arr[10] = { 5, 1, 7, 2, 9, 3, 6, 8, 0, 4 }; bubbleSort(arr, 10); // 数组大小 for (int i = 0...9 return substr($str, 0, $i); // $i 是加上中文后的字符串长度 } echo GBSubstr("ab喜cdefgh",7); // 从头开始截取一个长度为...它要求存储在Memory数据表里的数据使用的是长度不变的格式,这意味着不能使用BLOB和TEXT这样的长度可变的数据类型,VARCHAR是一种长度可变的类型,但因为它在MySQL内部当做长度固定不变的CHAR...[3] MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么? varchar是变长,节省存储空间,char是固定长度。

    3.6K51

    告诉你38个MySQL数据库的小技巧!

    还可以使用一种直接的方法查看默认存储引擎。执行结果直接显示了当前默认的存储引擎为MyISAM。...10、选择数据类型的方法和技巧是什么? MySQL提供了大量的数据类型,为了优化存储,提高数据库性能,在任何情况下均应使用 最精确的类型。即在所有可以表示该列值的类型中,该类型使用的存储最少。...LEFT(dt, 4),这样就获得了字符串左边开始长度为4的子字符串,即YEAR 部分的值;如果要获取月份值,可以输入MID(dt,6,2),字符串第6个字符开始,长度为2的子 字符串正好为dt中的月份值...对字符串类型的字段进行索引,如果可能应该指定一个前缀长度。例如,如果有一个 CHAR(255)的列,如果在前10个或30个字符内,多数值是惟一的,则不需要对整个列进行索引。...默认情况下查询缓冲区的大小为〇,也就是不可用。可以修改queiy_cache_size以调整 查询缓冲区大小;修改query_cache_type以调整查询缓冲区的类型。

    3.9K10

    告诉你 38 个 MySQL 数据库的小技巧!

    还可以使用一种直接的方法查看默认存储引擎。执行结果直接显示了当前默认的存储引擎为 MyISAM。...10 选择数据类型的方法和技巧是什么? MySQL 提供了大量的数据类型,为了优化存储,提高数据库性能,在任何情况下均应使用 最精确的类型。即在所有可以表示该列值的类型中,该类型使用的存储最少。...12 MySQL 中可以存储文件吗? MySQL 中的 BLOB 和 TEXT 字段类型可以存储数据量较大的文件,可以使用这些数据类型 存储图像、声音或者是大容量的文本内容,例如网页或者文档。...可以输入 LEFT(dt, 4),这样就获得了字符串左边开始长度为 4 的子字符串,即 YEAR 部分的值;如果要获取月份值,可以输入 MID(dt,6,2),字符串第 6 个字符开始,长度为 2 的子...默认情况下查询缓冲区的大小为 〇,也就是不可用。可以修改 queiy_cache_size 以调查询缓冲区大小;修改 query_cache_type 以调整查询缓冲区的类型。

    3.7K40

    MySQL数据库实用技巧

    还可以使用一种直接的方法查看默认存储引擎。执行结果直接显示了当前默认的存储引擎为MyISAM。...10、选择数据类型的方法和技巧是什么?   MySQL提供了大量的数据类型,为了优化存储,提高数据库性能,在任何情况下均应使用 最精确的类型。即在所有可以表示该列值的类型中,该类型使用的存储最少。...LEFT(dt, 4),这样就获得了字符串左边开始长度为4的子字符串,即YEAR 部分的值;如果要获取月份值,可以输入MID(dt,6,2),字符串第6个字符开始,长度为2的子 字符串正好为dt中的月份值...对字符串类型的字段进行索引,如果可能应该指定一个前缀长度。例如,如果有一个 CHAR(255)的列,如果在前10个或30个字符内,多数值是惟一的,则不需要对整个列进行索引。...默认情况下查询缓冲区的大小为0,也就是不可用。可以修改queiy_cache_size以调整查询缓冲区大小;修改query_cache_type以调整查询缓冲区的类型。

    3.6K10

    37 个 MySQL 数据库小技巧,不看别后悔!

    还可以使用一种直接的方法查看默认存储引擎。执行结果直接显示了当前默认的存储引擎为MyISAM。...10、选择数据类型的方法和技巧是什么? MySQL提供了大量的数据类型,为了优化存储,提高数据库性能,在任何情况下均应使用 最精确的类型。即在所有可以表示该列值的类型中,该类型使用的存储最少。...12、MySQL中可以存储文件吗? MySQL中的BLOB和TEXT字段类型可以存储数据量较大的文件,可以使用这些数据类型 存储图像、声音或者是大容量的文本内容,例如网页或者文档。...LEFT(dt, 4),这样就获得了字符串左边开始长度为4的子字符串,即YEAR 部分的值;如果要获取月份值,可以输入MID(dt,6,2),字符串第6个字符开始,长度为2的子 字符串正好为dt中的月份值...对字符串类型的字段进行索引,如果可能应该指定一个前缀长度。例如,如果有一个 CHAR(255)的列,如果在前10个或30个字符内,多数值是惟一的,则不需要对整个列进行索引。

    2.7K20

    DBA-MySql面试问题及答案-上

    7.选择合适的数据类型 8.char & varchar 9.Mysql字符集 10.如何选择字符集? 11.什么是索引? 12.索引设计原则? 13.MySql有哪些索引?...**varchar(10)和int(10)代表什么含义** 49.视图是什么?对比普通表优势? 50.count(*)在不同引擎的实现方式? 1.什么是数据库?...1.Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。 每个MyISAM 在磁盘上存储成三个文件。...null值会占用更多的字节,且会在程序中造成很多与预期不符的情况. 48.varchar(10)和int(10)代表什么含义 varchar的10代表了申请的空间长度,也是可以存储的数据的最大长度,而int...的10只是代表了展示的长度,不足10位以0填充.也就是说,int(1)和int(10)所能存储的数字大小以及占用的空间都是相同的,只是在展示时按照长度展示。

    1.2K20

    MySql的这几个坑你踩过没?真是防不胜防!

    二、有符号和无符号 以前我们公司在项目开发之初制定开发规范时,对mysql的int类型字段定义成有符号,还是无符号问题专门讨论过。...默认int类型就是有符号的,创建有符号字段的语句如下: create table test_signed(a int);insert into test_signed values(-1); 执行结果:...mysql除了varchar和char是代表字符长度之外,其余的类型都是代表字节长度。 int(n) 这个n表示什么意思呢?...mysql常用数字类型字段占用字节数对照表: ? 从表中可以看出bigint实际长度是8个字节,但是我们定义的a显示4个字节,所以在不满4个字节时前面填充0。...所以bigint(4),这里的4表示显示的长度为4个字节,实际长度还是8个字节。 五、忽略大小写 我们知道在英文字母中有大小写问题,比如:a 和 A 是一样的吗?

    1.1K10

    一条这样的SQL语句最多能查询出来多少条记录?

    MySQL 的官方文档,根据文档我们知道: MySQL 客户端 max_allowed_packet值的默认大小为 16M(不同的客户端可能有不同的默认值,但最大不能超过 1G) MySQL 服务端...那么第 2 点呢,单行记录,默认值是 64M,会不会太大了啊,一行记录有可能这么大的吗? 有必要设置这么大吗? 单行最大存储空间限制又是多少呢?  ...,那么我们试一下用和上图一样的字段长度,只把最后一个字段的类型改成 BLOB 和 TEXT mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000...例子中我们用的是 MySQL8 ,由于字符集是 utf8mb3 ,存储一个字要用三个字节, 长度为 255 的话(列宽),总长度要 765 字节 ,再加上用 2 个字节存储长度,那么这个列的总长度就是...这种可变长度类型。

    1.7K40

    【Mysql】:linux环境下表的三部曲(数据操作 + 类型解析 + 约束规则)

    超出这个范围的数据将 无法插入 在MySQL中,整型可以指定为有符号或无符号,默认是有符号 的。可以通过 UNSIGNED 关键字指定字段为无符号类型。...MySQL必须保证 插入数据的完整性,一旦截断,那在MySQL中有些是成功插入的有些是截断后插入的,那作为用户来讲,他还能信任MySQL中插入的数据吗?...float的默认精度大约是7位,而decimal可以精确到65位整数和30位小数。如果d被省略,默认为0。如果m被省略,默认是10。 对于精度要求高的场景,应使用decimal类型。...字符串类型 3.1 char 语法:char(L):固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255。 示例:name char(2),表示最多存两个字符。...总结:varchar 类型 根据实际字符个数动态分配空间,最大字节数 为65535,但需要预留 1-3 个字节用于记录实际字符长度。

    1.1K00
    领券