简单谈谈MySQL中的int(m)

 更新时间:2016年09月29日 08:39:44   作者:chenyanxx  
设置int型的时候,需要设置int(M),以前知道这个M最大是255,但是到底应该设置多少并没有在意。注意zerofill,今天我们来简单探讨下

我们在设计表的时候,如果碰到需要设置int(整型)的时候,通常会按照惯例(大家都这样写)设置成int(11)。那么这里为什么是11呢?代表的又是什么呢?

以前我一直以为这里是在限制int显示的宽度,后来仔细研究和通过上网查询发现,事实并不是那样的。

确切的来说,这里的“宽度”只是一个“预期值”,它所代表的仅仅是你在设计数据表结构时,想让该列日后显示的值宽度为多少,但是具体存入值的宽度多少不会受任何影响。

当然,它的作用不仅如此,在存入数据的时候,还是有一定区别的,这一点可以通过设置字段的zerofill可以看出。比如这里我们创建一个数据表,结构如下:

create table test (
 num int(5) zerofill
);

上面代码创建一个名为test的表,结构很简单,表中只有一个名为num的字段,类型为int,宽度为5,为了看出宽度方便,我们又添加一个zerofill属性(该属性会让存入数值在不足宽度情况下,左侧补0)

然后我们开始插入数据:

mysql> insert into test values(1),(11),(123),(12345),(123456),(1234567);
Query OK, 6 rows affected (0.00 sec)
Records: 6 Duplicates: 0 Warnings: 0

打印结果:

mysql> select * from test;
+---------+
| num   |
+---------+
|  00001 |
|  00011 |
|  00123 |
|  12345 |
| 123456 |
| 1234567 |
+---------+
6 rows in set (0.00 sec)

由以上结果,不难看出,如果字符少于设置(期望值)宽度,在设置了zerofill属性的情况下,左侧会统统补0;但是如果超出则不受任何影响。也就是说这里的int(m)中m只是一个预期值,和真实数据宽度并没多大关系。

相关文章

  • Mysql如何将数据按照年月分组的统计

    Mysql如何将数据按照年月分组的统计

    这篇文章主要介绍了Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • MySQL中的insert-on-duplicate语句举例详解

    MySQL中的insert-on-duplicate语句举例详解

    这篇文章主要给大家介绍了关于MySQL中insert-on-duplicate语句的相关资料,文中通过图文以及代码示例将insert-on-duplicate的用法介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-06-06
  • 设置Mysql5.6允许外网访问的详细流程分享

    设置Mysql5.6允许外网访问的详细流程分享

    今天小编就为大家分享一篇设置Mysql5.6允许外网访问的详细流程分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 微信公众平台开发 数据库操作

    微信公众平台开发 数据库操作

    这篇文章主要介绍了微信公众平台开发 数据库操作的相关资料,需要的朋友可以参考下
    2016-10-10
  • 一台linux主机启动多个MySQL数据库的方法

    一台linux主机启动多个MySQL数据库的方法

    这篇文章主要介绍了一台linux主机启动多个MySQL数据库的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • CentOS7.2虚拟机上安装MySQL 5.6.32的教程

    CentOS7.2虚拟机上安装MySQL 5.6.32的教程

    这篇文章主要介绍了CentOS7.2虚拟机上安装MySQL 5.6.32的教程的相关资料,需要的朋友可以参考下
    2016-08-08
  • MySQL教程数据定义语言DDL示例详解

    MySQL教程数据定义语言DDL示例详解

    这篇文章主要为大家介绍了MySQL教程中什么是数据定义语言DDL的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • MySQL数据表使用的SQL语句整理

    MySQL数据表使用的SQL语句整理

    这篇文章主要介绍了MySQL数据表使用的SQL语句整理,文章基于MySQL的相关资料展开举例说明,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • 基于MySql的扩展功能生成全局ID

    基于MySql的扩展功能生成全局ID

    本文借用 MySQL的扩展功能 REPLACE INTO 来生成全局id,REPLACE INTO和INSERT的功能一样,但是当使用REPLACE INTO插入新数据行时,如果新插入的行的主键或唯一键(UNIQUE Key)已有的行重复时,已有的行会先被删除,然后再将新数据行插入
    2015-12-12
  • 一文带你理解MySQL TCL 事务控制

    一文带你理解MySQL TCL 事务控制

    本文主要介绍了MySQL TCL事务控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11

最新评论