mysql unsigned zerofill_Mysql中Unsigned和Zerofill数据型的使用(细节也很重要啊)
一、今天开同事在使用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数据型的使用(细节也很重要啊)相关推荐
- mysql根据id删除数据库,MYSQL删除表中的指定ID数据
MYSQL删除表中的指定ID数据 删除A表中的ID 中的开头以B* 的数据库. 复制代码 代码如下: delete FROM A WHERE id like 'B%' 单独删除 A 表中的ID B 复 ...
- mysql int zerofill_Mysql 中int[M]—zerofill-阿里云开发者社区
我们在定义数字类型的数据类型的时候,往往考虑该数字类型的数据能否装的下该字段的最大值,如状态位的字段:tinyint,表的主键:int,或者bigint,今天在看到开发同学提交表结构设计文档中看到数值 ...
- mysql longtext 查询_mysql中longtext存在大量数据时,会导致查询很慢?
一个表,1.5w条数据,字段: id,name,content,last_update_time id,自定义主键 name,varchar类型 content是longtext类型, last_up ...
- mysql 导出数据库中的某张数据表_mysql 导出数据库中的某张数据表
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- mysql索引优化longtext_mysql中longtext存在大量数据时,会导致查询很慢?
一个表,1.5w条数据,字段: id,name,content,last_update_time id,自定义主键 name,varchar类型 content是longtext类型, last_up ...
- mysql删除表中的一列数据_在数据表中添加或删除一列
注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容. 本页面是自动翻译的,可能包含语法错误或不准确之处. 我们的目的是使此内容能对你有所帮助. 可以在本页面底部告诉我们此信息是否对你有帮助吗? ...
- MySQL数据库修改表某一列数据(一整列)
MySQL修改表中一整列数据 ①选择数据库mysql>use 数据库名 ②mysql>update 表名 set 列名='修改的值';
- mysql同时往两个表插数据_MySQL 的两个特殊数据类型属性 unsigned与 zerofill
概述 我们在了解mysql数据类型不可避免的要先了解这两个属性--unsigned与 zerofill,是否选用这两个属性对选择数据类型有莫大的关系. 1.unsigned unsigned 就是将数 ...
- mysql 1690_mysql error BIGINT UNSIGNED value is out of range in 解决办法
mysql>SET sql_mode='NO_UNSIGNED_SUBTRACTION'; 类型属性 在介绍数据类型前先来介绍两个属性UNSIGNED和ZEROFILL是否使用这两个属 ...
最新文章
- Dockerfile文件全面详解
- Kotlin学习笔记(六) 伴生对象 对象表达式
- Mike and distribution(思维)
- 前端“黑话”polyfill
- Python导入运行的当前模块报错
- [深度学习-优化]欠拟合与过拟合以及解决方法
- 实数基本定理的等价证明
- 黑群晖 linux 修改参数,黑群晖 DS918+ 修改引导参数隐藏引导盘和数据盘
- C++进阶教程之预存处理器
- 126. PHP 加密
- EasyStack郭长波连任OpenStack基金会独立董事
- [并发]线程池关闭的问题
- Linux挂载逻辑卷
- 联想 ThinkPad E480无线网卡配置错误导致无法连接无线网解决方案
- 使用nodejs(ipp和html-pdf-node)实现连接打印机后端静默打印html文件
- Navicate使用
- OpenGL初学者入门——学习指南【共 9 篇文章】
- es6 去掉空格_ES6之字符串
- oracle 11g rac suse,suse linux 11 + 多路径+udev+oracle11g rac
- 开放大学建筑构造计算机考试试题,精选国家开放大学电大《建筑构造》形考任务2试题及答案...