int(1)和int(10)_int char区别

int(1)和int(10)_int char区别int(1)和int(11)是否有区别?

大家好,又见面了,我是你们的朋友全栈君。

MySQL类型关键字后面的括号内指定整数值的显示宽度(例如,INT(11))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。

所以INT(1)和INT(11)默认是没有任何区别的!
mysql> desc t1;
+——-+———+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+———+——+—–+———+——-+
| id | int(1) | YES | | NULL | |
| uid | int(11) | YES | | NULL | |
+——-+———+——+—–+———+——-+
2 rows in set (0.00 sec)

mysql> insert into t1 select 123,1234;
Query OK, 1 row affected (0.04 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from t1;
+——+——+
| id | uid |
+——+——+
| 123 | 1234 |
+——+——+
1 row in set (0.05 sec)

当结合可选扩展属性ZEROFILL使用时, 默认补充的空格用零代替。例如,对于声明为INT(5) ZEROFILL的列,值4检索为00004。请注意如果在整数列保存超过显示宽度的一个值,当MySQL为复杂联接生成临时表时会遇到问题,因为在这些情况下MySQL相信数据适合原列宽度。

所有整数类型可以有一个可选(非标准)属性UNSIGNED。当你想要在列内只允许非负数和该列需要较大的上限数值范围时可以使用无符号值。如果设置了ZEROFILL扩展属性试,默认就有了无符号属性(UNSIGNED)

所以INT(1)与INT(11)后的括号中的字符表示显示宽度,整数列的显示宽度与MySQL需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,INT类型的字段能存储的数据上限还是2147483647(有符号型)和4294967295(无符号型)。其实当我们在选择使用INT的类型的时候,不论是INT(1)还是INT(11),它在数据库里面存储的都是4个字节的长度。

mysql> desc t2;
+——-+—————————+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+—————————+——+—–+———+——-+
| id | int(1) unsigned zerofill | YES | | NULL | |
| uid | int(11) unsigned zerofill | YES | | NULL | |
+——-+—————————+——+—–+———+——-+
2 rows in set (0.00 sec)

mysql> insert into t2 select 123456,123456789;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> insert into t2 select 123456,1234567899;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from t2;
+——–+————-+
| id | uid |
+——–+————-+
| 123456 | 00123456789 |
| 123456 | 01234567899 |
+——–+————-+
2 rows in set (0.00 sec)

总结:
INT(M) ZEROFILL,加上ZEROFILL后M才表现出不同,比如 INT(3) ZEROFILL,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果INT(3)和INT(10)不加ZEROFILL,则它们没有什么区别.M不是用来限制INT列内保存值的范围的.int(M)的最大值和最小值与UNSIGNED有关。

转载于:https://www.cnblogs.com/liang545621/p/9443168.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107371.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mysql secure file priv(private)

    1290–TheMySQLserverisrunningwiththe–secure-file-privoptionsoitcannotexecutethisstatementsecure-file-priv特性secure-file-priv参数是用来限制LOADDATA,SELECT…OUTFILE,andLOAD_FILE()传到哪个指定…

  • Idea正则表达式一键替换注释,生成@ApiModelProperty(““)「建议收藏」

    平常日常开发中,返回给前端的vo对象在字段上需要加注释@ApiModelProperty(“xxx”),方便在前端同事在swagger文档看注释,一般我是domain对象生成之后,复制代码到vo对象里,然后再修改Java块注释为前端的注释@ApiModelProperty(“xxx”),那怎么从以下的代码注释转为@ApiModelProperty(“xxx”)注释呢?如果字段很多的话,一个一个写会比较耗时也枯燥,可以用正则表达式一键替。/***xxx*/(1)doma

  • gtest宏列表_指定宏怎么用

    gtest宏列表_指定宏怎么用简介总结gtest中的所有断言相关的宏。gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是:ASSERT_*系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。EXPECT_*系列的断言,当检查点失败时,继续往下执行。布尔值检查FatalassertionNonfatalassertion…

  • navicat premium 15 mac激活码(JetBrains全家桶)

    (navicat premium 15 mac激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • Observability:运用 Fleet 来轻松地导入 Nginx 日志及指标

    Observability:运用 Fleet 来轻松地导入 Nginx 日志及指标在我之前的文章: Observability:使用ElasticAgent和IngestManager简化数据导入(一) Observability:使用ElasticAgent和IngestManager简化数据导入(二) 我有讲到如何使用IngestManager简化数据输入。今天我重新看了一下界面确实变了很多,这就是为什么实验版本的功能一直在演化中。在今天的文章中,我将基于7.13的版本如何使用Fleet导入Nginx日志。..

  • 有序的四字成语_LinkedHashMap

    有序的四字成语_LinkedHashMapHashMap是无序的,HashMap在put的时候是根据key的hashcode进行hash然后放入对应的地方。所以在按照一定顺序put进HashMap中,然后遍历出HashMap的顺序跟put的顺序不同(除非在put的时候key已经按照hashcode排序号了,这种几率非常小)单纯的HashMap是无法实现排序的,这的排序是指,我们将键值对按照一定的顺序put进HashMap里,然后在进行

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号