mysql里int(3)与int(11)的区别

原创
小哥 3年前 (2022-10-20) 阅读数 13 #mysql

原帖:http://blog.sina.com.cn/s/blog\_610997850100wjrm.html

总结,int(M) zerofill,加上zerofill后M只有这样才会显示出一点效果,比如 int(3) zerofill,插入到数据库中的内容就是插入到数据库中的内容10,那么实际插入就是实际插入010,也就是说,增加一个前缀,即增加一个先行,即增加一个前缀,即增加一个前缀0.如果int(3)和int(10)不加 zerofill,那么它们之间就没有区别了。M不是用来限制int个数的.int(M)的最大值和最小值undesigned底部的图表说明了这一点。

mysql> create table t (t int(3) zerofill);  
Query OK, 0 rows affected (0.00 sec)  

mysql> insert into t set t = 10;  
Query OK, 1 row affected (0.00 sec)  

mysql> select * from t;  
+——+  
| t |  
+——+  
| 010 |  
+——+  
1 row in set (0.11 sec)  

Zerofill with default width, the same as int(10):  

mysql> create table t (t int zerofill);  
Query OK, 0 rows affected (0.02 sec)  

mysql> insert into t set t = 10;  
Query OK, 1 row affected (0.02 sec)  

mysql> select * from t;  
+————+  
| t |  
+————+  
| 0000000010 |  
+————+  
1 row in set (0.08 sec)  

Without zerofill:  

mysql> create table t (t int);  
Query OK, 0 rows affected (0.01 sec)  

mysql> insert into t set t = 10;  
Query OK, 1 row affected (0.01 sec)  

mysql> select * from t;  
+——+  
| t |  
+——+  
| 10 |  
+——+

1 row in set (0.00 sec)

以上转载自以上转载自上述转载自上述转载自 http://hi.baidu.com/nancy0754/blog/item/2f3ea13a957a27d7d5622535.html

1 bytes = 8 bit ,一个字节可以表示的最大数据长度为2的8次方 11111111 在位于计算机中的计算机中,该计算机也位于

-128到127

1.BIT[M]

位字段类型。位字段类型。位字段类型,则M表示每个值的位数,范围为1到64,如果M被忽略且默认为被忽略且缺省值为被忽略,则缺省值为被忽略并缺省为1

2.TINYINT[( M )] [UNSIGNED] [ZEROFILL]  M默认为4

非常较小的整数。带符号的范围是-128到127。无符号范围是0到255。

  1. BOOL,BOOLEAN

是TINYINT(1)同义词。的同义词zero值被认为是假的。非zero该值被认为是真的。该值被认为是真的。该值被认为是真的。值被认为是真的。

4.SMALLINT[( M )] [UNSIGNED] [ZEROFILL] M默认为6

较小的整数。带符号的范围是-32768到32767。无符号范围是0到65535。

5.MEDIUMINT[( M )] [UNSIGNED] [ZEROFILL] M默认为9

中等大较小的整数。带符号的范围是-8388608到8388607。无符号范围是0到16777215。

  1. INT[( M )] [UNSIGNED] [ZEROFILL]   M默认为11

普通大较小的整数。带符号的范围是-2147483648到2147483647。无符号范围是0到4294967295。

7.BIGINT[( M )] [UNSIGNED] [ZEROFILL] M默认为20

大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号范围是0到18446744073709551615。

注:这里注:这里注:这里M不代表存储在数据库中的特定长度,这在过去是一种误解int(3)只能存储3有多少个长度,多少个长度就有多少长度。有好几个长度。int(11)就会存储11有多少个长度,多少个长度就有多少长度。有好几个长度。这是大错特错的。

事实上,当我们选择使用事实上,当我们选择使用实际,当我们选择使用int当涉及到类型时,当涉及到类型时int(3)还是int(11)它在数据库中的存储方式与它在数据库中的存储方式相同,在数据库中的存储方式也是如此4使用时为字节的长度int(3)如果您键入如果您输入10这将默认为您提供存储位这将为您提供默认存储位这将为您提供默认存储位010,这意味着这意味着3表示默认长度,当您处于3当它帮助你变得不完整时,当你超越3当比特到位时,就没有效果了。

前天,集团管理层问我 int(10)与int(11)有什么关系?当时我以为是长度上的差异,现在我看到除了使用时存储上的细微差别外,它们之间并没有什么不同。int(10)它也可以代表也可以代表可能也可以代表也可以代表2147483647这个值int(11)它也可以代表也可以代表可能也可以代表它也可以代表。它也可以被表现出来。也可以代表。也可以用来表示。

要查看不同的效果,记得添加要查看不同的效果,请记住添加 zerofill该值,它指示用于0填充物,否则看不到效果。填充,否则效果不可见。

我们在创建数据库时通常不包括此选项,因此可以说它们之间没有区别。

转载于:https://www.cnblogs.com/wtjqs/p/11593214.html

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除