MySQL中int(10)和int(11)的区别详解

 更新时间:2023年03月02日 09:18:01   作者:蹲街式等待  
本文主要介绍了MySQL中int(10)和int(11)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、背景

在创建数据库表的时候,我们经常会用到int(x)来定义一个字段的类型,一直误以为这里的x表示存储数字的长度。

其实大错特错,这里的 x 指的是 最大显示宽度(最大有效显示宽度是255),且显示宽度与存储大小或类型包含的值的范围无关。

二、MySQL整数类型

类型字节取值范围显示宽度
tinyint1-128 ~ 1274
smallint2-32768 ~ 327676
mediumint3-8388608 ~ 83886079
int4-2147483648 ~ 214748364711
bigint8-9223372036854775808 ~ 922337203685477580720

MySQL 类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。

该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。

当结合可选扩展属性 zerofill 使用时, 默认补充的空格用零代替。

例如,对于声明为 INT(5) zerofill 的列,值 4 检索为 00004。请注意如果在整数列保存超过显示宽度的一个值,当 MySQL 为复杂联接生成临时表时会遇到问题,因为在这些情况下 MySQL 相信数据适合原列宽度。

所有整数类型可以有一个可选(非标准)属性 UNSIGNED。当你想要在列内只允许非负数和该列需要较大的上限数值范围时可以使用无符号值。

那取值范围和显示宽度到底有什么关系呢?利用 int 做了个实验:

create table int_demo(
    id int not null auto_increment,
    int_4 int(4) UNSIGNED zerofill,
    int_8 int(8) UNSIGNED zerofill,
    primary key (id)
);

insert into int_demo (int_4, int_8) VALUES (2, 1000),(123456, 1234567898);

select * from int_demo;

查询结果:

mysql> select * from int_demo;
+----+--------+------------+
| id | int_4  | int_8      |
+----+--------+------------+
|  1 |   0002 |   00001000 |
|  3 | 123456 | 1234567898 |
+----+--------+------------+
2 rows in set (0.00 sec)

总结:

显示宽度整数类型的取值范围是无关的。

显示宽度只是指明 mysql 最大可能显示的数字个数,数值的位数小于指定的宽度时左侧用数字 0 填充。

如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能够显示出来。

到此这篇关于MySQL中int(10)和int(11)的区别详解的文章就介绍到这了,更多相关MySQL int(10)和int(11)内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql/Java服务端对emoji的支持与问题解决方法详解

    mysql/Java服务端对emoji的支持与问题解决方法详解

    这篇文章主要介绍了mysql/Java服务端对emoji的支持与问题解决方法,结合实例形式分析了mysql/Java服务端对emoji字符集存储及支持问题解决方法,需要的朋友可以参考下
    2019-10-10
  • MySQL使用外键实现级联删除与更新的方法

    MySQL使用外键实现级联删除与更新的方法

    这篇文章主要介绍了MySQL使用外键实现级联删除与更新的方法,详细分析了mysql数据库与表的创建、数据插入、查询以及外链的使用与级联操作相关技巧,需要的朋友可以参考下
    2016-07-07
  • MySQL中is null和=null的区别及说明

    MySQL中is null和=null的区别及说明

    这篇文章主要介绍了MySQL中is null和=null的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 手把手带你彻底卸载MySQL数据库

    手把手带你彻底卸载MySQL数据库

    相信大家都因为各种各样的原因可能需要卸载MySQL或者卸载重装,但是如果MySQL不能清理干净的话是很容易出现问题的,这篇文章主要给大家介绍了关于如何彻底卸载MySQL数据库的相关资料,需要的朋友可以参考下
    2022-06-06
  • MYSQL中文乱码问题的解决方案

    MYSQL中文乱码问题的解决方案

    mysql是我们项目中非常常用的数据型数据库,但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况这篇文章主要给大家介绍了关于MYSQL中文乱码问题的解决方案,需要的朋友可以参考下
    2022-06-06
  • MYSQL数据库连接池及常见参数调优方式

    MYSQL数据库连接池及常见参数调优方式

    这篇文章主要介绍了MYSQL数据库连接池及常见参数调优方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 忘记Mysql密码的解决办法小结

    忘记Mysql密码的解决办法小结

    最近老是忘记mysql密码。网上学习了四种解决办法,记录下来。分享给大家
    2014-07-07
  • MySQL中临时表的基本创建与使用教程

    MySQL中临时表的基本创建与使用教程

    这篇文章主要介绍了MySQL中临时表的基本创建与使用教程,注意临时表中数据的清空问题,需要的朋友可以参考下
    2015-12-12
  • MySQL8.x登陆root用户突然提示mysql_native_password的实现

    MySQL8.x登陆root用户突然提示mysql_native_password的实现

    本文主要介绍了MySQL 8.x登陆root用户突然提示mysql_native_password,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • Mysql数据库常用命令操作大全

    Mysql数据库常用命令操作大全

    这篇文章主要介绍了Mysql常用命令操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03

最新评论