`
chenzehe
  • 浏览: 532969 次
  • 性别: 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基础只是总结

    7、前导0 zerofill 属性可以写在末尾的主键 列值唯一 索引 4、查看表 desc 表名 show columns from 表名 show columns in 表名 5、修改表 alter table 表名 a) drop 字段 注意当表中字段为1个的时候不能...

    MySQL语句细解——笔记【更新中】

    文章目录开篇重点提示database 库相关table 表相关data 数据相关character 字符列类型整数型Int测试代码语句细解unsigned 无符号标识设定显示长度zerofill 显示长度保持最高位小数型FloatDoubleDecimal测试代码语句...

    MySQL命令大全

    2.DOUBLE[(M,D)] [ZEROFILL] 型:正常大小(双精密)浮点数字类型 3.DATE 日期类型:支持的范围是-01-01到-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 4.CHAR(M) 型:...

    MYSQL常用命令大全

    2.DOUBLE[(M,D)] [ZEROFILL] 型: 正常大小(双精密)浮点数字类型 3.DATE 日期类型:支持的范围是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列 4....

    mysql 全国地区数据库表 五级数据库 村级地区表

    `zip_code` mediumint(6) unsigned zerofill NOT NULL DEFAULT '000000' COMMENT '邮政编码', `city_code` char(6) NOT NULL DEFAULT '' COMMENT '区号', `name` varchar(50) NOT NULL DEFAULT '' COMMENT '名称'...

    中国行政区域,邮政编码,5级行政区域mysql库

    `zip_code` mediumint(6) unsigned zerofill NOT NULL DEFAULT '000000' COMMENT '邮政编码', `city_code` char(6) NOT NULL DEFAULT '' COMMENT '区号', `name` varchar(50) NOT NULL DEFAULT '' COMMENT '名称'...

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

    mysql int(3)与int(11)的区别 总结,int(M) zerofill,加上zerofill后M才表现出有点点效果,比如 int(3) zerofill,你...mysql> create table t (t int(3) zerofill); Query OK, 0 rows affected (0.00 sec) mysql> in

    比较详细的MySQL字段类型说明

    注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性。 TINYINT[(M)] [UNSIGNED] [ZEROFILL] 一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。 SMALLINT[(M)] [UNSIGNED] ...

    mysql基础操作及案例分析

    主键的作用(主键约束,自增长约束auto_increnment,非空约束-not null,唯一约束unique,默认约束default,零填充约束zerofill) DQL操作(排序查询,聚合查询,分组查询,分页查询limit,正则表达式)、 多表操作...

    MySQL表的约束

    表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primary key,auto_increment,unique key 。 空属性 两个值:null(默认的)和not null(不为空) 数据库默认字段基本都是字段为空,...

    3分钟如何向MySQL数据库中插入100万条数据

    一、编写测试案例向MySQL数据库中插入百万条数据。测试数据表建表脚本如下:use db_xk; drop table if exists tb_test2; create table tb_test2 ( id int primary key auto_increment, subject varchar(50) ...

    MySQL 查找价格最高的图书经销商的几种SQL语句

    Database changed mysql> CREATE TABLE shop ( -> article INT(4) UNSIGNED ZEROFILL DEFAULT ‘0000’ NOT NULL, -> dealer CHAR(20) DEFAULT ” NOT NULL, -> price DOUBLE(16,2) DEFAULT ‘0.00’ NOT NULL, -> ...

    zerofill:填充文件系统中未使用的空间。-开源

    用零字节填充文件系统中未使用的空间,并覆盖未使用的inode。 根据van Hauser / [THC],vh @ thc.org对安全删除的填充, ,简化并添加了一些修复程序。 版本:0.5.1

    mantis db_generate.sql

    db_generate.sql# phpMyAdmin MySQL-Dump # http://phpwizard.net/phpMyAdmin/ # # -------------------------------------------------------- # # Table structure for table 'mantis_bug_table' # DROP TABLE ...

    简单谈谈MySQL中的int(m)

    我们在设计表的时候,如果碰到需要设置int(整型)的时候,通常会按照惯例(大家都这样写)设置成int(11)。那么这里为什么是11呢?代表的又是什么呢? 以前我一直以为这里是在限制int显示的宽度,后来仔细研究和通过...

    PHP 数字左侧自动补0

    举例来说:员工的工号 X001 虽然 MySQL 本身的字段设定成 zerofill 的属性时,会将不足位数的部份补上0,但是这个功能只能用在数字的字段上面。 所以必要的时候只好靠PHP来进行了。

    tb_provinces.sql

    2019年全国行政区域划分,mysql数据库脚本。 CREATE TABLE `tb_provinces` ( `id` int(11) NOT NULL, `city_name` varchar(30) NOT NULL COMMENT '城市名称', `parent_id` int(11) NOT NULL COMMENT '父级id', `...

    全球城市资源 sql 表 包含国际城市

    `id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '城市名称', `code` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '状态码', ...

    springboot的模块化开发,集成shiro+jwt实现restful接口的token认证

    `user_id` int(11) unsigned zerofill NOT NULL AUTO_INCREMENT, `user_name` varchar(32) DEFAULT '', PRIMARY KEY (`user_id`) )ENGINE=InnoDB DEFAULT CHARSET=utf8 ; CREATE TABLE `auth_user` ( `userId` ...

Global site tag (gtag.js) - Google Analytics