`
xjdx
  • 浏览: 6936 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

 
阅读更多

总结,int(M) zerofill ,加上zerofillM 才表现出有点点效果,比如 int(3) zerofill, 你插入到数据库里的是10, 则实际插入为010, 也就是在前面补充加了一个0. 如果int(3)int(10) 不加 zerofill, 则它们没有什么区别.M不是用来限制int 个数的.int(M) 的最大值和最小值与undesigned 有关,最下面那副图有说明.

mysql> create table t (t int(3) zerofill);
Query OK, 0 rows affected (0.00 sec)

mysql> insert into t set t = 10;
Query OK, 1 row affected (0.00 sec)

mysql> select * from t;
+——+
| t |
+——+
| 010 |
+——+
1 row in set (0.11 sec)

Zerofill with default width, the same as int(10):

mysql> create table t (t int zerofill);
Query OK, 0 rows affected (0.02 sec)

mysql> insert into t set t = 10;
Query OK, 1 row affected (0.02 sec)

mysql> select * from t;
+————+
| t |
+————+
| 0000000010 |
+————+
1 row in set (0.08 sec)

Without zerofill:

mysql> create table t (t int);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t set t = 10;
Query OK, 1 row affected (0.01 sec)

mysql> select * from t;
+——+
| t |
+——+
| 10 |
+——+

1 row in set (0.00 sec) 


以上转载自 http://hi.baidu.com/nancy0754/blog/item/2f3ea13a957a27d7d5622535.html

1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是

-128到127

1.BIT[M]

位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1

2. TINYINT[(M )] [UNSIGNED] [ZEROFILL]  M默认为4

很小的整数。带符号的范围是-128127 。无符号的范围是0255

3. BOOLBOOLEAN

TINYINT(1) 的同义词。zero 值被视为假。非zero 值视为真。

4.SMALLINT[(M )] [UNSIGNED] [ZEROFILL] M默认为6

小的整数。带符号的范围是-3276832767 。无符号的范围是065535

5.MEDIUMINT[(M )] [UNSIGNED] [ZEROFILL] M默认为9

中等大小的整数。带符号的范围是-83886088388607 。无符号的范围是016777215

6. INT[(M )] [UNSIGNED] [ZEROFILL]   M默认为11

普通大小的整数。带符号的范围是-21474836482147483647 。无符号的范围是04294967295

7.BIGINT[(M )] [UNSIGNED] [ZEROFILL] M默认为20

大整数。带符号的范围是-92233720368547758089223372036854775807 。无符号的范围是018446744073709551615

注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的。

其实当我们在选择使用int的类型的时候,不论是int(3)还是int(11),它在数据库里面存储的都是4个字节的长度,在使用int(3)的时候如 果你输入的是10,会默认给你存储位010,也就是说这个3代表的是默认的一个长度,当你不足3位时,会帮你不全,当你超过3位时,就没有任何的影响。

前天组管问我 int(10)与int(11)有什么区别,当时觉得就是长度的区别吧,现在看,他们之间除了在存储的时候稍微有点区别外,在我们使用的时候是没有任何区别的。int(10)也可以代表2147483647这个值int(11)也可以代表。

要查看出不同效果记得在创建类型的时候加 zerofill这个值,表示用0填充,否则看不出效果的。

我们通常在创建数据库的时候都不会加入这个选项,所以可以说他们之间是没有区别的。

分享到:
评论

相关推荐

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

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

    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文件

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

    mysql中int的日期格式处理

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

    mysql int和tinyint的区别.docx

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

    MySQL INT类型全解析

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

    JDBC数据类型与数据库字段对应表——mysql篇

    JDBC数据类型与数据库字段对应表——mysql篇 数值型 整型 JDBC tinyint java.lang.Integer smallint mediumint java.lang.Long int bigint java.math.BigInteger

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

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

    MySQL中int最大值深入讲解

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

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

    在这种情况下,如果`appkey`原本是`int`类型,MySQL可以利用主键的索引来快速定位数据。但是,由于现在`appkey`是`varchar`,这使得在比较时无法直接使用索引,导致了全表扫描(type: ALL),这在大型表中会显著降低...

    presto sql 与mysql sql 对比.pdf

    Presto SQL 与 MySQL SQL 对比 基础 Presto SQL 和 MySQL SQL 都是关系型数据库管理系统,但它们之间存在一些差异。在 Presto SQL 中,字段名和表名使用双引号括起来,而在 MySQL SQL 中,字段名和表名使用反引号...

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

    有一天突然想起,php intval的取值范围与mysql的int类型一样吗? 查了一下,不一样…… ...

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

    QT C++ 与MySQL数据库的交互是开发桌面应用时常用的一种技术组合,特别是在需要存储和检索数据时。这个"QT MySQL vchar int picture demo"是一个示例项目,它演示了如何在QT C++环境中使用MySQL数据库进行文本...

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

    CREATE TABLE t3(id3 INT UNIQUE,a3 INT,b3 INT); CREATE TABLE t4(id4 INT,a4 INT,b4 INT); CREATE TABLE t5(id5 INT UNIQUE,a5 INT,b5 INT); 附件中的脚本是创建导出结果,下载后,直接在自己的测试数据库中执行...

Global site tag (gtag.js) - Google Analytics