昨天写sql文件时把以前一直不是很明白的地方弄明白了,就是在设置int型的时候,需要设置int(M),以前知道这个M最大是255,但是到底应该设置多少并没有在意。
查了下官方manual
有这样的语句:
M
indicates the maximum display width
for integer types. The maximum legal display width is 255.
这个M
就是maximum display width。那什么是maximum display width?看了下面的例子很容易说明了,注意zerofill
:
mysql> create table b ( b int (4));
Query OK, 0 rows affected (0.25 sec)
mysql> insert into b values (
12345
);
Query OK, 1 row affected (0.00 sec)
mysql> select * from b;
+-------+
| b |
+-------+
| 12345 |
+-------+
1 row in set (0.00 sec)
mysql> alter table b change b b int(11);
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from b;
+-------+
| b |
+-------+
|
12345
|
+-------+
1 row in set (0.00 sec)
mysql> alter table b change b b int(11) zerofill
;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from b
;
+-------------+
| b |
+-------------+
| 000000
12345
|
+-------------+
1 row in set (0.00 sec)
mysql> alter table b change b b int(4) zerofill
;
Query OK, 1 row affected (0.08 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from b
;
+-------+
| b |
+-------+
| 10000 |
+-------+
1 row in set (0.00 sec)
mysql> alter table b change b b int(6) zerofill
;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from b;
+--------+
| b |
+--------+
| 0
12345
|
+--------+
1 row in set (0.00 sec)
以上的例子说明了,这个M
的表示显示宽度,他跟着zerofill
一起才有意义。就算前面设置的M的值比数值实际的长度小对数据也没有任何影响。
分享到:
相关推荐
介绍 MySQL 数据类型中的 integer types 有点奇怪。你可能会见到诸如:int(3)、int(4)、int(8) 之类的 int 数据类型。刚接触 MySQL 的时候,我还以为 int(3) 占用的存储...原来,在 int(M) 中,M 的值跟 int(M) 所占
MySQL中的整数类型主要包括四种:`tinyint`、`smallint`、`int`和`bigint`,它们各自有不同的取值范围和存储需求,适用于不同的应用场景。 1. `tinyint`: `tinyint`是一种非常小的整数类型,主要用于存储只需要1...
mysql int(3)与int(11)的区别 总结,int(M) zerofill,加上zerofill后M才表现出有点点效果,比如 int(3) zerofill,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果int(3)和int(10)不加...
在MySQL数据库中,`int` 是一种常用的整数数据类型,用于存储整数值。当我们创建一个`int`类型的字段时,经常会看到`int(m)`这样的语法,这里的`m`被称为显示宽度。不过,这个`m`实际上是一个容易引起误解的概念,它...
### MySQL中的类型转换 在MySQL中,类型转换是一项非常实用的功能,它可以帮助我们处理不同数据类型之间的转换,尤其是在处理如日期、数字与字符串等类型的相互转换时尤其有用。本文将详细介绍MySQL中常用的类型...
在MySQL中,INT(M)的M表示的是该整数字段的最大显示宽度,而非该字段可以存储的最大数值宽度。即使设置了一个小的显示宽度,比如INT(2),也不会限制字段可以存储的数值大小,它仍然可以存储INT类型的最大范围值。...
MySQL 中的整型包括 tinyint、smallint、mediumint、int、bigint 等五种,分别占用 1、2、3、4、8 个字节的存储空间。每种整型都有其对应的取值范围,例如 tinyint 的取值范围为 -128 到 127,如果加上 unsigned ...
一、date型转换成int型 UNIX_TIMESTAMP(‘1997-10-04 22:23:00’) =====> 875996580 二、int型转换成date型 FROM_UNIXTIME...以上就是小编为大家带来的mysql日期date型和int型互换的方法全部内容了,希望大家
3. **数据类型与字段**:手册列出了MySQL支持的所有数据类型,如INT、VARCHAR、DATE、TEXT等,以及它们的适用场景和限制。 4. **索引**:索引是提升数据库查询性能的关键,手册讲解了如何创建和管理B-Tree、Hash、R...
* INT[(M)] [UNSIGNED] [ZEROFILL]:一个正常大小的整数,范围是-2147483648 到 2147483647(有符号)或 0 到 4294967295(无符号)。 * INTEGER[(M)] [UNSIGNED] [ZEROFILL]:INT 的一个同义词。 * BIGINT[(M)] ...
MySQL 存储过程是一个预编译的 SQL 语句集合,可以将多个 SQL 语句组合成一个单独的执行单元,存储在 MySQL 服务器中。存储过程可以提高数据库的性能、安全性和可维护性。 创建数据库和表 在 MySQL 中,创建数据库...
对于CHAR、VARCHAR和TEXT类型,前面的表中的值L和M应解释为字符数目,并且列定义中的这些类型的长度表示字符数目。例如,要想保存一个TINYTEXT值需要L字符+ 1个字节。 要想计算用于保存具体CHAR、VARCHAR或者TEXT列...
可以创建一个数据表 t_myisam(id int auto_increment, name varchar(30),primary key(id)),创建时显式指定存储引擎为 MyISAM。使用“ALTER TABLE TABLE_NAME ENGINE=ENGINE_NAME”语句,更改表 t_myisam 的存储...
本文档主要介绍从DB2数据库迁移到MySQL数据库的过程中需要注意的一些关键点和技术细节。这包括了数据类型转换、SQL语法差异处理、函数转换等方面的内容。 #### 二、withur处理 在DB2中,`WITH UR` 是一个用于优化...