mysql unsigned 用法及相减出现补数溢出解决方法
发布时间:2024-01-22 19:26:53
unsigned 既为非负数,用此类型可以增加数据长度!
例如如果 tinyint最大是127,那 tinyint unsigned 最大 就可以到 127 * 2
unsigned 属性只针对整型,而binary属性只用于char 和varchar。
类型 | 说明 |
tinyint | 非常小的整数 |
smallint | 较小整数 |
mediumint | 中等大小整数 |
int | 标准整数 |
bigint | 较大整数 |
float | 单精度浮点数 |
double | 双精度浮点数 |
decimal | 一个串的浮点数 |
每种数值类型的名称和取值范围如表2所示。
类型说明 | 取值范围 |
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 |
表2:数值列类型的取值范围
各种类型值所需的存储量如表3所示。
类型说明 | 存储需求 |
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 ) |
表3:数值列类型的存储需求
mysql提供了五种整型: tinyint、smallint、mediumint、int和bigint。int为integer的缩写。这些类型在可表示的取值范围上是不同的。 整数列可定义为unsigned从而禁用负值;这使列的取值范围为0以上。各种类型的存储量需求也是不同的。取值范围较大的类型所需的存储量较大。
mysql 提供三种浮点类型: float、double和decimal。与整型不同,浮点类型不能是unsigned的,其取值范围也与整型不同,这种不同不仅在于这些类型有最大 值,而且还有最小非零值。最小值提供了相应类型精度的一种度量,这对于记录科学数据来说是非常重要的
mysql5 unsigned 相减出现补数 溢出 解决办法
Mysql5 为了速度,只存放数二进制数据,而且在加减运算中,也是二进制的运算.
所以在使用unsigned 是小心0-1 的操作.尽量在这类操作前先做一个判断.
如果直接在程序里进行判定,难免会出现数据错误,因为有一点点时间内数据是放在内存的,而没放进库里,最好的办法还是直接送出sql语句进行修改,这里mysql5有解决办法 CONVERT( 字段 + (要加减的数字) AS SIGNED )就可以了。
例如:UPDATE `user` SET `tk` = CONVERT( tk + (-8) ,SIGNED ) WHERE `id` = '1330'


猜你喜欢
- 使用了smtplib等第三方库,进行发送邮件,完成邮件报警功能如下是实例 :#!/usr/bin/pythonimport globimpo
- 系统抛出18483错误,未能连接服务器,因为'distributor_admin'未定义远程登陆 我在做分发服务器,进行快照
- 1、需要将时间字符串转换成datetime类型,语法:data[‘time'] = pd.to_datetime(data[‘tim
- 如下所示:for line in file.readlines():line=line.strip('\n')来源:http
- Numpy是python常用的一个类库,在python的使用中及其常见,广泛用在矩阵的计算中,numpy对矩阵的操作与纯python比起来速
- 牛顿摆是一个1960年代发明的桌面演示装置,五个质量相同的球体由吊绳固定,彼此紧密排列。又叫:牛顿摆球、动量守恒摆球、永动球、物理撞球、碰碰
- python 将字典写为json文件字典结构如下res = { "data":[]}temp
- Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义的3D。但是目前这项技术还
- 问题描述在做矩阵数据的归一化处理时,遇到个报错:ValueError: operands could not be broadcast to
- 简介增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进
- aspjpeg组件官方下载地址:http://www.persits.com/说明: 1、aspjpeg能对图片水印进行透明度调整
- 在用户体验这个行业,经常会听到,可用性,可访问性这样专业的名词,但是,事实上在很多产品实现过程里都忽略了这一点!WHY?举个很简单的例子,用
- 在进行Web的交互设计中,颜色信息的传达也是不可或缺的一部分。我们常会发现许多“灰色”的应用,他们的出现总是不动声色而又恰如其分,维持了整个
- 一、相关代码数据库配置类 MongoDBConn.py#encoding=utf-8'''Mongo Conn连接类
- 本文实例讲述了Python接收Gmail新邮件并发送到gtalk的方法。分享给大家供大家参考。具体实现方法如下:#!/usr/bin/env
- 主键的生成方式主要有三种: 一. 数据库自动生成 二. GUID 三. 开发创建 严格讲这三种产生方式有一定的交叉点,其定位方式将在下面进行
- 1.理论只要两个表的公共字段有匹配值,就将这两个表中的记录组合起来。个人理解:以一个共同的字段求两个表中符合要求的交集,并将每个表符合要求的
- 发现ie7的空格间距要比ie6/firefox/opera的都要宽一点。比如有时候排版的时候,我会采用简单的空格来分隔。<div&nb
- 由于HTTP协议是无状态协议,所以服务器与客户端通过http协议通讯时,服务器不能记录客户端的信息。为了解决这个问题,通过 Cookie 和
- 在SQL Server数据库的维护或者Web开发中,有时需要在存储过程或者作业等其他数据库操作中调用其它的存储过程,下面介绍其调用的方法一、