`
chenzehe
  • 浏览: 538167 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MySQL 整型 长度 ZEROFILL属性

阅读更多

在MySQL中创建整型字段INT(或其它像TINYINT)时,可以设定该字段的长度,如:

 

CREATE TABLE t1(id1 INT,id2 INT(5));

 

查看表结构信息:

mysql> DESC t1;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id1   | int(11) | YES  |     | NULL    |       |
| id2   | int(5)  | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+

 

如果不指定长度,INT型默认长度为11。如果往该字段插入长度大于设定长度的数据,结果会怎样?MySQL会不会截断或者插不进去呢?

 

现往该表插入长度为7个1的值:

mysql> INSERT INTO t1(id1,id2) VALUES(1111111,1111111);
查看结果如下:

mysql> SELECT * FROM t1;
+---------+---------+
| id1     | id2     |
+---------+---------+
|       1 |       1 |
| 1111111 | 1111111 |
+---------+---------+
2 rows in set (0.00 sec)

 

得出结论,MySQL插入成功,不会截断,还是按照类型的实际精度进行保存

 

整型字段有个ZEROFILL属性,在数字长度不够的数据前面填充0,以达到设定的长度,下面给上面的两个字段id1和id2分别设置该属性:

 ALTER TABLE t1 MODIFY id1 INT ZEROFILL;

 ALTER TABLE t1 MODIFY id2 INT(5) ZEROFILL;

 

 

mysql> DESC t1;
+-------+---------------------------+------+-----+---------+-------+
| Field | Type                      | Null | Key | Default | Extra |
+-------+---------------------------+------+-----+---------+-------+
| id1   | int(10) unsigned zerofill | YES  |     | NULL    |       |
| id2   | int(5) unsigned zerofill  | YES  |     | NULL    |       |
+-------+---------------------------+------+-----+---------+-------+

 

再往t1表插入两个长度为1的数据,如下:

mysql> INSERT INTO t1(id1,id2) VALUES(1,1);

 

查看结果如下:

mysql> SELECT * FROM t1;
+------------+---------+
| id1        | id2     |
+------------+---------+
| 0000000001 |   00001 |
| 0001111111 | 1111111 |
+------------+---------+

 

 加上ZEROFILL属性后,MySQL会在数据前面补0以达到设置的长度。

 

 

 

 

 

 

0
1
分享到:
评论

相关推荐

    MySql所有字段类型及长度范围

    ### MySQL所有字段类型及长度范围详解 在数据库设计与应用开发过程中,选择合适的字段类型对于确保数据的准确存储和高效处理至关重要。MySQL提供了丰富的数据类型,涵盖了数字、字符串、日期时间等多种类别,满足了...

    MySql数据库的列类型(字段类型).pdf

    列类型还支持一些附加属性,如 ZEROFILL 会在数值不足指定宽度时用零填充,增加可读性;NOT NULL 约束确保列中不允许有 NULL 值;而 AUTO_INCREMENT 属性则自动为整型列生成唯一的递增序列,常用于主键。 总的来说...

    mysql详细的基础语法

    数字类型包括INT(整数)、FLOAT(单精度浮点数)、DOUBLE(双精度浮点数,支持ZEROFILL属性)等。 B. 字符串类型包括CHAR(定长字符串)、VARCHAR(变长字符串)、TEXT/BLOB(超过255个字符的长字符串)等。 C. ...

    MYSQL实用技术-MySQL数据类型.pptx#资源达人分享计划#

    在定义字符串列时,可以使用ZEROFILL属性,使得数值类型的值自动填充前导零以达到指定的显示宽度。 日期和时间列类型如DATE、TIME、DATETIME和TIMESTAMP,用于存储日期和时间信息。DATE格式为'YYYY-MM-DD',TIME为'...

    mysql设计文档

    MySQL设计文档旨在提供一套规范,以确保在使用MySQL数据库时能充分发挥其优势,避免潜在问题。以下是基于给定内容的详细知识点: 一、数据库命令规范: 1. 数据库对象名称应使用小写字母和下划线,以符合lower_case...

    Mysql数据的数据类型说明

    - **ZEROFILL**: 这是一个显示属性,它不会对值本身进行任何更改。当使用ZEROFILL时,数值会在左侧用零填充至指定的宽度。 - **AUTO_INCREMENT**: 自增属性通常用于自动增加的主键字段。每个表最多只能有一个列设置...

    MySql数据库的列类型(字段类型)

    - **FLOAT和DOUBLE的UNSIGNED属性**:MySQL 4.0.2以后,浮点类型也可以指定UNSIGNED,不改变取值范围,只是移除负数部分。 - **M和D**:分别表示显示宽度和小数位数,对FLOAT和DOUBLE是可选的,对DECIMAL在MySQL ...

    MySQL学习简明文档

    - `zerofill`修饰符会在位数不足时用0填充,适用于需要顺序编号的场景,如`id INT(4) ZEROFILL`,插入123会显示为00123。 - **浮点型**:包括float和double(或real,double precision)。例如: - `float(5,2)`...

    学习笔记Mysql数据类型(字段)介绍.doc

    `ZEROFILL` 属性会在数值不足显示宽度时用零填充。`AUTO_INCREMENT` 用于自增字段,常用于主键。注意,数值类型的显示宽度并不影响存储空间和取值范围,仅影响显示效果。 **字符串类数据类型** 字符串类包括 CHAR...

    mysql从入门到应用详细学习教程

    MySQL支持多种数据类型,如整型、浮点型、字符串类型等。例如: - `INT`:整数类型。 - `VARCHAR(n)`:可变长度的字符串类型,n表示最大长度。 - `DATETIME`:日期时间类型。 **3.3 数据库的字段属性** - **...

    MySql 常用命令集

    - **解释**:整型,用于存储整数值。`M`表示显示宽度。 **2. DOUBLE[(M, D)][ZEROFILL]** - **解释**:双精度浮点型,用于存储实数或浮点数。`M`表示总位数,`D`表示小数位数。 **3. DATE** - **解释**:...

    PHP中级程序员必须掌握的Mysql知识

    - **整型**:包括TINYINT(0~255 / -128~127)、SMALLINT(0~65535 / -32768~32767)、MEDIUMINT、INT、BIGINT等。 - 参数解释: - `UNSIGNED`:表示该字段不允许为负数。 - `ZEROFILL`:用于自动在数字左侧填充0...

    如何开启mysql中的严格模式

    3. 保留零填充:在插入数值时,如果设置了ZEROFILL属性,非严格模式可能会丢失前导零,而在严格模式中,这将被视为错误。 4. 无意义的默认值:对于没有指定默认值的NOT NULL字段,非严格模式可能允许NULL值插入,但...

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

    2. **ZEROFILL属性**: - 当添加`ZEROFILL`属性时,如`INT(3) ZEROFILL`,系统会在数字不足指定宽度时自动在前面填充零。例如,插入10会存储为010。如果不使用`ZEROFILL`,则无论`INT`的宽度设置为何,都不会自动...

    (MariaDB)MySQL数据类型和存储机制全面讲解

    使用ZEROFILL属性时,整型字段会在显示时用0填充,而不是空格,同时字段会自动变为无符号。例如,INT(2) ZEROFILL的字段如果存储1,显示结果将是01,但实际存储的仍然是1,不影响数值计算。 总结起来,理解MySQL/...

    PHP数据库编程之MySQL优化策略概述

    同时,尽可能使用ZEROFILL属性为整数类型自动补零,以保持数据格式的一致性。 在导入大量数据时,删除索引再插入数据可以提高速度,之后再重建索引。这样可以避免在插入过程中频繁更新索引,节省时间。 数据库设计...

    mysql常用指令

    - **浮点型**:`DOUBLE[(M,D)][ZEROFILL]`:用于存储浮点数值。 - **日期类型**:`DATE`:存储日期值,范围是1000-01-01至9999-12-31。 - **定长字符串**:`CHAR(M)`:用于存储固定长度的字符串。 - **二进制大对象/...

    sql语法内容简介,基本知识下载

    - **DOUBLE[(M,D)][ZEROFILL]**: 双精度浮点型,用于存储带有小数的数值。 - **DATE**: 日期类型,支持的范围是从 1000-01-01 到 9999-12-31。 - **CHAR(M)**: 定长字符类型,用于存储固定长度的字符串。 - **BLOB/...

Global site tag (gtag.js) - Google Analytics