您好,欢迎来到暴趣科技网。
搜索
您的当前位置:首页mysql zerofill设置方法_mysql之zerofill

mysql zerofill设置方法_mysql之zerofill

来源:暴趣科技网

相信很多用了mysql的人都很迷茫

1.对于整形的字段用了unsigned有什么区别?

2.tinyint(1) 和 tinyint(7) 究竟有什么区别?

下面来简单分析一下:

1、对于每种整形来说,都分无符号(unsigned)和有符号(signed)两种类型,如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的数据,比如16位系统中一个int能存储的数据的范围为–32768 ~ 32767(16位2进制的最高位作为符号位‘1’为负‘0’为正),而unsigned能存储的数据范围则是0~65535(这个最高位不用做符号位,所以是2的16次方,一共65536)。

由于在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号数的话就是负数;如果是无符号数,则都解释为正数。同时在相同位数的情况下,所能表达的整数范围变大。

下面提供一下MYSQL中各种类型的整形的存储范围

2、说到tinyint(1)和 tinyint(7)的区别,就不能不提mysql的整形的一个特性,zerofill,即是否在位数不足的时候,左补0。

明白这个定义之后,其实就是非常清楚了,1也好,7也好,只是和zerofill结合起来使用,用来标识存储的值在不满足多少位的情况下左补0

看例子 :

先建一张测试表test1

CREATE TABLE IF NOT EXISTS `test1` (

`t1` int(5) unsigned NOT NULL,

`t2` int(11) unsigned zerofill NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE = utf8_unicode_ci;

INSERT INTO `test1` (`t1`, `t2`) VALUES

(111, 111111),

(111111,1111);看一下最终的数据显示:

都在图中了。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoquwan.com 版权所有 湘ICP备2024080961号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务