关于mysql中int(1)中int后面的数字】的更多相关文章

mysql在建表的时候int类型后的长度代表什么? 是该列允许存储值的最大宽度吗? 为什么我设置成int(1), 也一样能存10,100,1000呢.  当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查阅了一些资料, 也仔细的看了mysql手册关于int data type的说法.   以下是每个整数类型的存储和范围(来自mysql手册) …
tinyint 从 0 到 255 的整型数据.存储大小为 1 字节. smallint 从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据.存储大小为 2 个字节. int 从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字). 存储大小为 4 个字节.int 的 SQL-92 同义字为 integer. bigint 从 -2^63 (-9223372036854775808) 到…
[1]int(3) 和 int(11)的区别(思维惯性认知错误) 这里的3或11代表的是存储在数据库中的具体的长度,总以为int(3)只能存储3个长度的数字,int(11)只会存储11个长度的数字. [2]Mysql基础知识 学习Mysql基本数据类型时,我们已知: 从声明字段是int类型的那一刻起,int类型的字段就是占四个字节,一个字节8位,也就是4*8=32位. 因此,可以表示的数字个数是2的32次方(2^32 = 4294 9672 96个数字) 而4294 9672 96个数字也就是[…
今天去面试的时候 面试官问到了这个问题:int(3) 和 int(11) 有什么区别?? 当时一听有点蒙,(不知道为什么蒙,后来回来想想可能是觉得考官怎么会问这么简单的问题呢,所以蒙了),当时我的回答是后面的数字代表的是最大能存储的数字的位数吧,但是int类型在mysql里面都是占用4个字节的,不管是3位数还是11位数都是占用4个字节. 考官听后没有任何的反馈信息给我,我当时还以为回答的完全没有问题呢,但是回来后我百思不得其解啊,为什么会问这么简单的问题呢?? 然后我就google了一下,顿时发…
int(N)中的N不是限制字段取值范围的,int的取值范围是固定的(0至4294967295)或(-2147483648至2147483647) 那么N这个值是为了在字段中的值不够时补零的,但是必须含有zerofill,例如 create table `type`(`id` int(8) zerofill unsigned NOT NULL,primary key(`id`))engine=InnoDB default charset=utf8; 如果插入8888,查看的数据应该为0000888…
注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的. 其实当我们在选择使用int的类型的时候,不论是int(3)还是int(11),它在数据库里面存储的都是4个字节的长度,在使用int(3)的时候如果你输入的是10,会默认给你存储位010,也就是说这个3代表的是默认的一个长度,当你不足3位时,会帮你不全,当你超过3位时,就没有任何的影响. 前天组管问我 int(10)与int(11)有什…
昨天写sql文件时把以前一直不是很明白的地方弄明白了,就是在设置int型的时候,需要设置int(M),以前知道这个M最大是255,但是到底应该设置多少并没有在意. 查了下官方manual 有这样的语句: M indicates the maximum display width for integer types. The maximum legal display width is 255. 这个M 就是maximum display width.那什么是maximum display wid…
INT[(M)] [UNSIGNED] [ZEROFILL] 普通大小的整数.带符号的范围是-2147483648到2147483647.无符号的范围是0到4294967295. INT(1) 和 INT(10)本身没有区别,但是加上(M)值后,会有显示宽度的设置. 如代码所示: mysql> create table test(id int(3)); Query OK, 0 rows affected (0.47 sec) mysql> insert into test values(12)…
先看一个mysql表结构 Sql代码 CREATE   TABLE  `test` ( `TYPEID` int (2) ) ENGINE=MyISAM CHARSET=latin1; Sql代码   CREATE TABLE `test` ( `TYPEID` int(2) ) ENGINE=MyISAM CHARSET=latin1; 对于test表字段中的typeId 后面的 int(2)中的2代表的到底是什么含义. 对于大多数的人来说我们马上想到的是varchar(2)后面的2代表为两个…
过完春节该投入战斗了,上班第一天发现了一个挺有意思的知识点给大家分享一下:一直以来的的误区我们都认为了int后面的跟的数字为最大显示宽度会对后面插入的参数会有限制,其实倒不是这样的 # 困惑 最近遇到个问题,有个表的要加个user_id字段,user_id字段可能很大,于是提mysql工单alter table xxx ADD user_id int(1).领导看到sql工单,于是说:这int(1)怕是不够用吧,接下来是一通解释.其实这不是我第一次遇到这样的问题了,其中不乏有工作5年以上的老司机…