int(1) 和 int(10)区别

这篇具有很好参考价值的文章主要介绍了int(1) 和 int(10)区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有个表的要加个user_id字段,user_id字段可能很大,
alter table xxx ADD user_id int(1)。
int(1)怕是不够用吧,接下来是一通解释。

我们知道在mysql中 int占4个字节,那么对于无符号的int,最大值是2^32-1 =
4294967295,将近40亿,难道用了int(1),就不能达到这个最大值吗?

CREATE TABLE `user` (
  `id` int(1) unsigned NOT NULL AUTO_INCREMENT,
   PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

id字段为无符号的int(1),我来插入一个最大值看看。


mysql> INSERT INTO `user` (`id`) VALUES (4294967295);
Query OK, 1 row affected (0.00 sec)

可以看到成功了,说明int后面的数字,不影响int本身支持的大小,int(1)、int(2)…int(10)没什么区别。

零填充

一般int后面的数字,配合zerofill一起使用才有效。先看个例子:

CREATE TABLE `user` (
  `id` int(4) unsigned zerofill NOT NULL AUTO_INCREMENT,
   PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
// An highlighted block
var foo = 'bar';

注意int(4)后面加了个zerofill,我们先来插入4条数据。

mysql> INSERT INTO `user` (`id`) VALUES (1),(10),(100),(1000);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

分别插入1、10、100、1000 4条数据,然后我们来查询下:

mysql> select * from user;
+------+
| id   |
+------+
| 0001 |
| 0010 |
| 0100 |
| 1000 |
+------+
4 rows in set (0.00 sec)

通过数据可以发现 int(4) +
zerofill实现了不足4位补0的现象,单单int(4)是没有用的。而且对于0001这种,底层存储的还是1,只是在展示的会补0。

int后面的数字不能表示字段的长度,int(num)一般加上zerofill,才有效果。

zerofill的作用一般可以用在一些编号相关的数字中,比如学生的编号 001 002 …
999这种,如果mysql没有零填充的功能,但是你又要格式化输出等长的数字编号时,那么你只能自己处理了。

int(1) 和 int(10)区别文章来源地址https://www.toymoban.com/news/detail-412720.html

到了这里,关于int(1) 和 int(10)区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL系列】使用 ALTER TABLE 语句修改表结构的方法

    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老 导航 檀越剑指大厂系列:全面总

    2024年04月10日
    浏览(46)
  • ALTER TABLE 分区操作-动态增加一级,多级分区,动态删除分区

    alter 分区操作包括增加分区和删除分区操作,这种分区操作在Spark3.x之后被支持,spark2.4版本不支持,并且使用时,必须在spark配置中加入spark.sql.extensions属性,其值为:org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions,在添加分区时还支持分区转换,语法如下: 添加分区语

    2024年02月16日
    浏览(43)
  • openGauss学习笔记-35 openGauss 高级数据管理-ALTER TABLE语句

    修改表,包括修改表的定义、重命名表、重命名表中指定的列、重命名表的约束、设置表的所属模式、添加/更新多个列、打开/关闭行访问控制开关。 35.1 语法格式 在一张已经存在的表上添加列。 在一张已经存在的表上删除列。 修改表的字段类型。 为一张已经存在表的列增

    2024年02月13日
    浏览(49)
  • 【hive】—原有分区表新增加列(alter table xxx add columns (xxx string) cascade;)

    需求:需要在之前上线的分区报表中新增加一列。 1、创建分区测试表并插入测试数据 查看原有分区表test_1的表结构 2、新增加一列 grade,数据类型为strIng 查看添加列之后的数据结构 3、新增加列grade有数据后,插入新的分区B数据正常显示,原来A区grade列为NULL。 原因是: h

    2024年02月08日
    浏览(52)
  • JavaScript中alter、confrim、prompt的区别及使用

    在JavaScript中,alert是一个内置函数,用于显示一个警告框,向用户显示一条消息。 使用alert函数的基本语法如下: alert的代码示例:显示一个按钮, 弹出警告框 效果如下: 当鼠标点击按钮时,弹出警告框 alert()是js的window对象的一个方法,调用时可以写成window.alert(),也可以写

    2024年02月02日
    浏览(32)
  • 有个码龄10年的程序员跟我说:“他编程从来不用鼠标

    例如下图的开发者工具,然后给快捷方式起一个缩写的名字(自己要记住), 接下来把这个快捷方式复制到 C:/Windows 目录中,就可以使用 Windows+R 输入刚才的快捷方式名称缩写进行快速访问。 本步骤也可通过设置环境变量实现,需求大的时,可以学习一下进行设置。 如果还

    2024年04月26日
    浏览(38)
  • 【MySQL系列】ALTER语句详解,以及UPDATE,DELECT,TRUNCATE语句的使用+区别

    💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃 个人主页 :阿然成长日记 👈点击可跳转 📆 个人专栏: 🔹数据结构与算法🔹C语言进阶 🚩 不能则学,不知则问,耻于问人,决无长进 🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍 前言: 上一篇博客讲

    2024年02月11日
    浏览(49)
  • unsigned int 与 int 间的区别

    unsigned int 是无符号整型,要求定义的整数一定是正整数。 当把一个负数赋值给无符号整型的变量的时候,会自动把最高位的符号位看成整数的一部分。 例如: 结果为 因为-10的在计算机中存储的补码为1111 1111 1111 1111 1111 1111 1111 0110 当计算不把最高位当作符号位,默认这是个

    2024年02月12日
    浏览(43)
  • Golang中int, int8, int16, int32, int64和uint区别

    在Go语言(Golang)中,整数类型用来表示整数,主要包括int系列和uint系列。这两大系列根据能否表示负数,分为有符号整数和无符号整数。 int系列( 有符号整数 ): int8: 占用1个字节(8位),能够表示的有符号整数范围从 -128到127。 int16: 占用2个字节(16位),能够表示的有

    2024年01月25日
    浏览(61)
  • Python函数每日一讲10 - int()

    在Python编程中,经常需要将数据从一种类型转换为另一种类型。 int() 函数是Python中用于将其他数据类型转换为整数类型的内置函数之一。通过本文的介绍,你将了解 int() 函数的基本用法和常见应用场景,帮助你更好地处理数据类型转换的需求。 int() 函数用于将指定的值转换

    2024年03月20日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包