一、今天开同事在使用Mysql的时候,错误使用了Unsigned和Zerofill了,大概是不是蛮懂这两个使用场景吧。很多东西,细节都是很重要的,不能随便用的。

decimal是浮点型,使用Unsigned是错误的。

二、什么是unsigned

unsigned 既为非负数,用此类型可以增加数据长度!

例如如果 tinyint最大是127,那 tinyint unsigned 最大 就可以到 127 * 2

unsigned 属性只针对整型,而binary属性只用于char 和varchar。

三、整型和浮点型

类型 说明

tinyint 非常小的整数

smallint 较小整数

mediumint 中等大小整数

int 标准整数

bigint 较大整数

float 单精度浮点数

double 双精度浮点数

decimal 一个串的浮点数

四、每种数值类型的名称和取值范围

类型说明 取值范围

tinyint[(m)] 有符号值:-128 到127(- 27 到27 – 1)无符号值:0到255(0 到28 – 1) 1个字节

smallint[(m)] 有符号值:-32768 到32767(- 215 到215 – 1)无符号值:0到65535(0 到21 6 – 1) 2个字节

mediumint[(m)] 有符号值:-8388608 到8388607(- 22 3 到22 3 – 1 )无符号值:0到16777215(0 到22 4 – 1) 3个字节

int[(m)] 有符号值:-2147683648 到2147683647(- 231 到231- 1)无符号值:0到4294967295(0 到232 – 1) 4个字节

bigint[(m)] 有符号值:-9223372036854775808 到9223373036854775807(- 263到263-1)无符号值:0到18446744073709551615(0到264 – 1) 8个字节

float[(m, d)] 最小非零值:±1.175494351e – 38

double[(m,d)] 最小非零值:±2.2250738585072014e – 308

decimal (m, d) 可变;其值的范围依赖于m 和d

五、各种类型值所需的存储量如表

类型说明 存储需求

tinyint[(m)] 1字节

smallint[(m)] 2字节

mediumint[(m)] 3字节

int[(m)] 4字节

bigint[(m)] 8字节

float[(m, d)] 4字节

double[(m, d)] 8字节

decimal (m, d) m字节(mysql < 3.23),m+2字节(mysql > 3.23 )

六、数值列类型的存储需求

mysql提供了五种整型: tinyint、smallint、mediumint、int和bigint。int为integer的缩写。这些类型在可表示的取值范围上是不同的。 整数列可定义为unsigned从而禁用负值;这使列的取值范围为0以上。各种类型的存储量需求也是不同的。取值范围较大的类型所需的存储量较大。

mysql 提供三种浮点类型: float、double和decimal。与整型不同,浮点类型不能是unsigned的,其取值范围也与整型不同,这种不同不仅在于这些类型有最大 值,而且还有最小非零值。最小值提供了相应类型精度的一种度量,这对于记录科学数据来说是非常重要的(当然,也有负的最大和最小值)。

七、什么是Zerofill

整型字段有个ZEROFILL属性,在数字长度不够的数据前面填充0,以达到设定的长度。

八、Zerofill应用一

这种用法,可以大量用于所谓“流水号”的生成上。比如,想要生成日期_0x的流水号。可以直接拼接

CREATE TABLE `staffs` (

`id` int(11) unsigned zerofill NOT NULL AUTO_INCREMENT,

`col2` varchar(20) NOT NUL,

PRIMARY KEY (`id`),

) ENGINE=InnoDB;

九、Zerofill应用二

比较常用的应该是月份或日期前补0,还是整形数字不是字符串。

CREATE TABLE `t1` (

`year` year(4) DEFAULT NULL,

`month` int(2) unsigned zerofill DEFAULT NULL,

`day` int(2) unsigned zerofill DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

结束、一些细节问题,还是非常重要的,不容小觑。

mysql unsigned zerofill_Mysql中Unsigned和Zerofill数据型的使用(细节也很重要啊)相关推荐

  1. mysql根据id删除数据库,MYSQL删除表中的指定ID数据

    MYSQL删除表中的指定ID数据 删除A表中的ID 中的开头以B* 的数据库. 复制代码 代码如下: delete FROM A WHERE id like 'B%' 单独删除 A 表中的ID B 复 ...

  2. mysql int zerofill_Mysql 中int[M]—zerofill-阿里云开发者社区

    我们在定义数字类型的数据类型的时候,往往考虑该数字类型的数据能否装的下该字段的最大值,如状态位的字段:tinyint,表的主键:int,或者bigint,今天在看到开发同学提交表结构设计文档中看到数值 ...

  3. mysql longtext 查询_mysql中longtext存在大量数据时,会导致查询很慢?

    一个表,1.5w条数据,字段: id,name,content,last_update_time id,自定义主键 name,varchar类型 content是longtext类型, last_up ...

  4. mysql 导出数据库中的某张数据表_mysql 导出数据库中的某张数据表

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  5. mysql索引优化longtext_mysql中longtext存在大量数据时,会导致查询很慢?

    一个表,1.5w条数据,字段: id,name,content,last_update_time id,自定义主键 name,varchar类型 content是longtext类型, last_up ...

  6. mysql删除表中的一列数据_在数据表中添加或删除一列

    注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容. 本页面是自动翻译的,可能包含语法错误或不准确之处. 我们的目的是使此内容能对你有所帮助. 可以在本页面底部告诉我们此信息是否对你有帮助吗? ...

  7. MySQL数据库修改表某一列数据(一整列)

    MySQL修改表中一整列数据 ①选择数据库mysql>use 数据库名 ②mysql>update 表名 set 列名='修改的值';

  8. mysql同时往两个表插数据_MySQL 的两个特殊数据类型属性 unsigned与 zerofill

    概述 我们在了解mysql数据类型不可避免的要先了解这两个属性--unsigned与 zerofill,是否选用这两个属性对选择数据类型有莫大的关系. 1.unsigned unsigned 就是将数 ...

  9. mysql 1690_mysql error BIGINT UNSIGNED value is out of range in 解决办法

    mysql>SET sql_mode='NO_UNSIGNED_SUBTRACTION'; 类型属性   在介绍数据类型前先来介绍两个属性UNSIGNED和ZEROFILL是否使用这两个属 ...

最新文章

  1. Dockerfile文件全面详解
  2. Kotlin学习笔记(六) 伴生对象 对象表达式
  3. Mike and distribution(思维)
  4. 前端“黑话”polyfill
  5. Python导入运行的当前模块报错
  6. [深度学习-优化]欠拟合与过拟合以及解决方法
  7. 实数基本定理的等价证明
  8. 黑群晖 linux 修改参数,黑群晖 DS918+ 修改引导参数隐藏引导盘和数据盘
  9. C++进阶教程之预存处理器
  10. 126. PHP 加密
  11. EasyStack郭长波连任OpenStack基金会独立董事
  12. [并发]线程池关闭的问题
  13. Linux挂载逻辑卷
  14. 联想 ThinkPad E480无线网卡配置错误导致无法连接无线网解决方案
  15. 使用nodejs(ipp和html-pdf-node)实现连接打印机后端静默打印html文件
  16. Navicate使用
  17. OpenGL初学者入门——学习指南【共 9 篇文章】
  18. es6 去掉空格_ES6之字符串
  19. oracle 11g rac suse,suse linux 11 + 多路径+udev+oracle11g rac
  20. 开放大学建筑构造计算机考试试题,精选国家开放大学电大《建筑构造》形考任务2试题及答案...

热门文章

  1. 理科生用创意毁灭世界,爆笑!
  2. 最让程序员自豪的事情是什么?
  3. PS2019历史记录画笔工具、历史记录艺术画笔工具
  4. 目标检测Loss大盘点
  5. Python高级特性:切片、迭代、列表生成式、生成器与迭代器
  6. 深度学习的实时面部姿势估计研究
  7. 触发器实现两表之间的INSERT,DELETE,UPDATE
  8. h5做的app和原生app的区别
  9. 设置float后,后面的元素位置问题。
  10. Civil 3D 二次开发 创建AutoCAD对象—— 00 ——