`

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中经常有用整型存放日期的问题,如何将整型转换为日期型在网上特别难搜索,本文就提供此项功能。

    MySql配置.int文件

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

    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和tinyint的区别.docx

    mysql int和tinyint的区别.docx

    MySQL中int最大值深入讲解

    导语 前两天看到的问题,展开写一下。 字节 ...先说明一下,在 MySQL 中的整数类型,可以分为 unsigned 和 signed 两种,即无符号和有符号,具体内容这里不展开。tinyint 的大小就是 1 byte,在 si

    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 ...

    MySQL创建存储过程批量插入10万条数据

    MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...

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

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

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

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

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

    主要介绍了MySQL数据库中把int转化varchar引发的慢查询 的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

    php数据入库前清理 注意php intval与mysql的int取值范围不同

    php保存数据到mysql 打算在dao层进行数据入库前的清理,比如varchar进行trim,int进行intval。 有一天突然想起,php intval的取值范围与mysql的int类型一样吗? 查了一下,不一样…… ...

    MySQL中索引优化distinct语句及distinct的多字段操作

    MySQL通常使用GROUPBY(本质上是排序动作)完成DISTINCT操作,如果DISTINCT操作和ORDERBY操作组合使用,通常会用到临时表.这样会影响性能. 在一些情况下,MySQL可以使用索引优化DISTINCT操作,但需要活学活用.本文涉及一个...

    mysql5.7.24 dll库文件

    mysql库文件和头文件,可以用VC调用库函数 #include "stdafx.h" #include "mysql.h" #include #include < list > #pragma comment(lib,"libmysql.lib") using namespace std; int main() { char strSQL[256] ...

    mysql数据库查询优化测试环境脚本

    示例 演示如何阅读MySQL的查询执行计划。先创建5张表,命令如下(各表的数据量为:t1...附件中的脚本是创建导出结果,下载后,直接在自己的测试数据库中执行“source test_env.sql”命令即可创建自己的mysql测试环境。

Global site tag (gtag.js) - Google Analytics