首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

聊聊Mysqlint(1)

昨天有个读者问了我这样一个问题在mysql建表时候,我设置一个字段为int类型,长度为1,但是我发现这个字段却可以存储任意长度数字,这是什么情况?...int 类型占 4 个字节,一个字节是 8 位,也就是说 int 类型在计算机底层是由 32 个 0 跟 1 表示,转化为十进制就是 2 32 次方,那么存储范围就是 0~2^32 ,如果带符号位的话就是...现在再来看看这个int(1)1究竟有什么奥秘。这个1跟这个字段能存数据范围没关系,它也不是限制这个字段数据长度。这个字段存储数据范围是由int来限制。...比如我们将int(1)改成int(3),我们再输入1,实际上显示是001。所以无论你将 int 类型长度设为多少并不会影响数据存储范围。...mysql对于整型数据类型,不仅给我们提供了int,还提供了tinyint,smallint,mediumint和bigint。

1.7K20

mysqlint长度意义

提问: mysql字段,unsigned int(3), 和unsinged int(6), 能存储数值范围是否相同。如果不同,分别是多大?...回答: 不同,int(3)最多显示3位无符号整体,int(6)最多显示6位无符号数。 如果你答案和上面的一致,恭喜你和我犯了一样错误。...发现,无论是int(3), int(6), 都可以显示6位以上整数。但是,当数字不足3位或6位时,前面会用0补齐。...查下手册,解释是这样MySQL还支持选择在该类型关键字后面的括号内指定整数值显示宽度(例如,INT(4))。该可选显示宽度规定用于显示宽度小于指定列宽度值时从左侧填满宽度。...也就是说,int长度并不影响数据存储精度,长度只和显示有关,为了让大家看更清楚,我们在上面例子建表语句中,使用了zerofill。

3.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

MySQLMySQL int(11) 到底代表什么意思?

一、前言   在工作中经常要与 mysql 打交道,但是对 mysql 各个字段类型一直都是一知半解,因此写本文总结记录一番。 二、简介 ?   ...对于 int 类型一些基础知识其实上图已经说很明白了,在这里想讨论下常用 int(11) 代表什么意思,很长时间以来我都以为这代表着限制 int 长度为 11 位,直到有天看到篇文章才明白,11...代表并不是长度,而是字符显示宽度,在字段类型为 int 时,无论你显示宽度设置为多少,int 类型能存储最大值和最小值永远都是固定,这里贴一些原文片段。   ...那么照文中所说,所以无论怎么设置 int 类型显示宽度,int 所能存储最大值和最小值是固定,那么这个显示宽度到底有什么用呢?   ...三、结论 从上个例子我们可以得出以下几个结论:   1、如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值长度都会与设置显示宽度一致,如上述例子字段 b,插入数值 1 显示为

2.9K20

MySQLint (10) 和 int (11) 区别

mysql 整数数据类型 不同类型取值范围 不同数据类型默认显示宽度 显示宽度跟负号没有关系,它只在人工设置了 ZEROFILL 属性有效。...显示宽度只是指明 mysql 最大可能显示数字个数,数值位数小于指定宽度时左侧用数字 0 填充。...如果插入了大于显示宽度值,只要该值不超过该类型整数取值范围,数值依然可以插入,而且能够显示出来。 同理,所以 int (10) 和 int (11) 无任何区别,就是显示宽度不同。...Mysql 可以为整数类型指定宽度,例如 INT (11),对大多数应用这是没有意义:他不会限制值合法范围,只是规定了 Mysql 一些交互工具,如 Mysql 命令行客户端,用来显示字符个数。...对于存储和运算来说, INT (1) 和 INT (8) 是相同。 是的,设置自动填充时候用来显示补充0有点 用而已

1.8K30

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

最后查出结果是:这里M代表并不是存储在数据库具体长度,以前总是会误以为int(3)只能存储 3个长度数字,int(11)就会存储 11 个长度数字,这是大错特错。...0 2 知识点 int(M) M指示最大显示宽度,最大有效显示宽度是 255,且显示宽度与存储大小或类型包含范围无关。...首先说一下 MySQL 数值类型,MySQL 支持所有标准 SQL 数值数据类型。...MySQL 类型关键字后面的括号内指定整数值显示宽度(例如,INT(4))。该可选显示宽度规定用于显示宽度小于指定列宽度值时从左侧填满宽度。...0 3 总结 所以,int(2) 与int(11)后括号字符表示显示宽度,整数列显示宽度与 MySQL 需要用多少个字符来显示该列数值,与该整数需要存储空间大小都没有关系,int类型字段能存储数据上限依旧是

4.2K30

mysql int(5) 到底有是多长?

在设计 mysql 表字段时,int(5) 表示是该字段长度为 5 吗?如果你觉得是,那请你继续往下看,相信你会有新收获。...先来看一个实际例子,我们创建一个新表,表只有一个主键 id 和一个 length 字段,其中 length 字段设置为 int(5) 。...+------------+-----------+ |  1          | 123456789           | +------------+-----------+ 在 mysql ...int 字段长度其实是固定,就是 4 个字节,不管你 int(11)  还是 int(5) 字段长度就是固定 4 个字节。...微信图片_20190118095222.jpg 注意如果要存储带符号整形数,是不支持 zerofill 属性,会自动转换为 0,在一些涉及递减业务需要注意考虑一下。

2.1K30

MySQLint、bigint、smallint 和 tinyint区别详细介绍

最近使用mysql数据库时候遇到了多种数字类型,主要有int,bigint,smallint和tinyint。其中比较迷惑int和smallint差别。...P.S. bigint已经有长度了,在mysql建表length,只是用于显示位数 int 从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647...但是,bigint 用于某些特殊情况,当整数值超过 int 数据类型支持范围时,就可以采用 bigint。在 SQL Server int 数据类型是主要整数数据类型。...SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。 int(M) 在 integer 数据类型,M 表示最大显示宽度。...在 int(M) ,M 值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 存储空间。

5.2K30

mysqlint、bigint、smallint 和 tinyint区别和存储范围

部门中有个字段存储是十进制数字 , 但是表示意思是转成二进制后 ,每一个位代表不同功能开关状态 当超过32个功能开关时候 , 就需要将int类型转换成bigint类型 , 原因就是int只能存储...4个字节也就是232次方整型值 , 装不下了, 下面就是具体范围 bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807...int 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 整型数据(所有数字)。存储大小为 4 个字节。...int SQL-92 同义字为 integer。 smallint 从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 整型数据。存储大小为 2 个字节。...但是,bigint 用于某些特殊情况,当整数值超过 int 数据类型支持范围时,就可以采用 bigint。

1.4K10

Mysql去除字符串特殊字符及varchar转int

场景描述 Mysql中有varchar类型字段,并且为:123,456 形式,需要对其进行排序,并根据条件筛选出前5条 模拟表数据 表名:table_a t_id(int) t_year(int) t_value...(varchar) 1 2019 123,456 Mysql去除字符串特殊符号 使用到函数:REPLACE(str,from_str,to_str) 用法 str:需要操作字段 from_str...:字段特殊符号 to_str:需要替换成什么样 这里把t_value值为:123,456”,” 去掉,也就是替换成空。...SQL: SELECT REPLACE(t_value,",","") FROM table_a; Mysqlvarchar转int 使用到函数: CAST(Filed AS UNSIGNED INTEGER...) 用法 Filed:为需要转换字段名 这里需要先把t_value”,”去掉然后再转成int SQL: SELECT CAST(REPLACE(t_value,",","") AS UNSIGNED

3.3K20

数据库char转int_mysql string转int

; 例如:将pony表d 进行排序,可d定义为varchar,可以这样解决; select * from pony order by (d+0); 在进行ifnull处理时,比如 ifnull(a...扩展资料 char类型占1字节,就是8位,所能存储正整数是 0111 1111,即127。现在将 int整数i= 128 赋予ch,会产生溢出。...因128是 int 型,占 4 字节,二进制代码为 0000 0000 0000 0000 0000 0000 1000 0000.。...若将它赋给一个只有8位char 类型变量,只能将低8位1000 0000 放进去,其他都会被删掉。...整数在计算机中都是以补码形式存储,此时1000 0000 在计算机眼里,是一个补码,最左边是 1 表示负数,补码1000 0000 所对应十进制是 -128,所以最后输出就是 -128。

5.3K20
领券