`

mysql中int(11)和int(10)的区别

 
阅读更多
设计数据库表经常会默认显示int的长度11,重来没自己设置过,深究过,这次记录一下这个问题。

百度后看到的大神的文章,写的非常好我自己验证了一下,果然和大神写的一样。就偷懒附上大神的文章,感兴趣的可以直接看大神的操作。

https://www.cnblogs.com/chenmingjun/p/10556206.html


总结如下:

1、如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值的长度都会与设置的显示宽度一致,如上述例子中的字段 b,插入数值 1 显示为00000000001,左边补了 10 个零直至长度达到 11 位;

  2、设置字段的显示宽度并不限制字段存储值的范围,比如字段 d 设置为 int(5),但是仍然可以存储 1234567890 这个 10 位数字;

  3、设置的字符宽度只对数值长度不满足宽度时有效,如 d 字段 int(5),插入 1 时,长度不足 5,因此在左边补充 4 个零直到 5 位,但是插入 1234567890 时超过了 5 位,这时的显示宽度就起不了作用了

脚本附上:
CREATE TABLE int_demo (
    id INT(11) NOT NULL AUTO_INCREMENT,
    a INT(11) NOT NULL,
    b INT(11) UNSIGNED ZEROFILL NOT NULL,
    c INT(5) DEFAULT NULL,
    d INT(5) UNSIGNED ZEROFILL NOT NULL,
    e INT(15) DEFAULT NULL,
    PRIMARY KEY (`id`)
);

INSERT INTO int_demo (a, b, c, d, e) VALUES (1, 1, 1, 1, 1);
INSERT INTO int_demo (a, b, c, d, e) VALUES (1234567890, 1234567890, 1234567890, 1234567890, 1234567890);

INSERT INTO int_demo (a, b, c, d, e,big) VALUES (1234567890, 1234567890, 1234567890, 1234567890, 1234567890,1234567890);

select * from int_demo;


navicat和dbeaver我都查询了,看不出来效果,最后在命令行下用mysql自己连接后,发现确实是填充了。
mysql> select * from int_demo;
+----+------------+-------------+------------+------------+------------+------------+
| id | a          | b           | c          | d          | e          | big        |
+----+------------+-------------+------------+------------+------------+------------+
|  1 |          1 | 00000000001 |          1 |      00001 |          1 |          0 |
|  2 | 1234567890 | 01234567890 | 1234567890 | 1234567890 | 1234567890 |          0 |
|  3 | 1234567890 | 01234567890 | 1234567890 | 1234567890 | 1234567890 | 1234567890 |
+----+------------+-------------+------------+------------+------------+------------+
3 rows in set (0.00 sec)


bigint是我自己测试又新增了字段。
mysql> desc int_demo;
+-------+---------------------------+------+-----+---------+----------------+
| Field | Type                      | Null | Key | Default | Extra          |
+-------+---------------------------+------+-----+---------+----------------+
| id    | int(11)                   | NO   | PRI | NULL    | auto_increment |
| a     | int(11)                   | NO   |     | NULL    |                |
| b     | int(11) unsigned zerofill | NO   |     | NULL    |                |
| c     | int(5)                    | YES  |     | NULL    |                |
| d     | int(5) unsigned zerofill  | NO   |     | NULL    |                |
| e     | int(15)                   | YES  |     | NULL    |                |
| big   | bigint(2)                 | NO   |     | NULL    |                |
+-------+---------------------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
分享到:
评论

相关推荐

    对比MySQL中int、char以及varchar的性能

    总的来说,MySQL中的int、char和varchar在性能上的差异并非显著到足以成为决定性因素。开发者应根据实际需求,如数据的类型、大小、预期的增长、是否需要索引以及对可读性和可维护性的要求,来综合考虑选择哪种数据...

    mysql中int的日期格式处理

    在MySQL中,日期和时间数据类型的处理是数据库操作中的常见任务。然而,有时出于特定需求,我们可能需要将日期存储为整型,比如Unix时间戳。这种情况下,我们需要掌握将整型日期转换为日期类型,以及反之转换的方法...

    MySql配置.int文件

    mysql的配置文件 具体安装见:https://blog.csdn.net/qq_31787603/article/details/81206033

    mysql int和tinyint的区别.docx

    ### MySQL INT 和 TINYINT 的区别 #### 一、INT 和 TINYINT 概述 在MySQL中,`INT` 和 `TINYINT` 是两种常见的整数类型,它们主要用于存储整数值。这两种类型的差异主要体现在存储空间的需求、能够表示的数值范围...

    mysql int(3)与int(11)的区别详解

    mysql int(3)与int(11)的区别 总结,int(M) zerofill,加上zerofill后M才表现出有点点效果,比如 int(3) zerofill,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果int(3)和int(10)不加...

    mysql中int、bigint、smallint 和 tinyint的区别详细介绍

    MySQL中的整数类型主要包括四种:`tinyint`、`smallint`、`int`和`bigint`,它们各自有不同的取值范围和存储需求,适用于不同的应用场景。 1. `tinyint`: `tinyint`是一种非常小的整数类型,主要用于存储只需要1...

    MySQL中int最大值深入讲解

    在MySQL数据库中,整数类型是用于存储数值数据的关键元素,包括`INT`在内的各种整数类型都有着不同的存储范围和用途。本篇文章将深入讲解`INT`类型的最大值及其背后的原理。 首先,我们要理解计算机存储的基本单位...

    实验训练1 在MySQL中创建数据库和表.docx

    本教程将指导您在MySQL中创建数据库和表,首先需要安装和配置MySQL数据库。 1. MySQL的安装和配置 在安装MySQL之前,需要下载MySQL安装文件,例如mysql-5.5.12-win32.msi。运行该程序可以进行MySQL安装。在安装...

    MySQL数据库中把int转化varchar引发的慢查询

    在MySQL数据库中,数据类型的选择对于查询性能至关重要,尤其是在涉及索引时。本文将深入探讨在将`int`类型转换为`varchar`类型后导致的慢查询问题,并提供相关优化建议。 首先,让我们看下问题的根源。在给出的表`...

    国开作业《MySQL数据库应用》实验训练1在MySQL中创建数据库和表参考107.pdf

    在IT领域,数据库是存储和管理数据的核心工具,而MySQL是一种广泛应用的关系型数据库管理系统(RDBMS),尤其在互联网行业中,由于其开源、免费、高效和稳定的特点,被广泛用于网站开发、数据分析以及各种业务系统。...

    MySQL INT类型全解析

    整型是MySQL中最常用的字段类型之一,通常用于存储整数,其中int是整型中最常用的,对于int类型你是否真正了解呢?本文会带你熟悉int类型相关知识,也会介绍其他整型字段的使用。 1.整型分类及存储范围 整数类型 ...

    详解MySQL数据类型int(M)中M的含义

    刚接触 MySQL 的时候,我还以为 int(3) 占用的存储空间比 int(4) 要小, int(4) 占用的存储空间比 int(8) 小。 后来,参看 MySQL 手册,发现自己理解错了。 int(M): M indicates the maximum display width for ...

    QT C++ 读写mySQL数据库 图片 例子 QT-MySQL-vchar-int-picture-demo.zip

    这个"QT MySQL vchar int picture demo"是一个示例项目,它演示了如何在QT C++环境中使用MySQL数据库进行文本(vchar)、整数(int)以及图片数据的读写操作。下面我们将详细探讨相关的知识点。 1. **QT框架**:QT...

    使用servlet,jdbc将mysql中数据显示在jsp页面中

    在这个项目示例中,我们将深入探讨如何使用这些技术将MySQL数据库中的数据呈现到JSP页面上。 首先,我们需要了解Servlet。Servlet是Java平台上的一个标准接口,用于扩展服务器的功能,特别是处理HTTP请求。在本项目...

    mysql日期date型和int型互换的方法

    一、date型转换成int型 UNIX_TIMESTAMP(‘1997-10-04 22:23:00’) =====> 875996580 二、int型转换成date型 FROM_UNIXTIME...以上就是小编为大家带来的mysql日期date型和int型互换的方法全部内容了,希望大家

Global site tag (gtag.js) - Google Analytics