当前位置:七道奇文章资讯数据防范MySQL防范
日期:2012-06-02 15:06:00  来源:本站整理

mysql unsigned 用法及相减呈现补数溢出办理办法[MySQL防范]

赞助商链接



  本文“mysql unsigned 用法及相减呈现补数溢出办理办法[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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'   以上是“mysql unsigned 用法及相减呈现补数溢出办理办法[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • Windows 搭配 IIS7 PHP MySQL 环境
  • mysql Out of memory (Needed 16777224 bytes)的错误办理
  • mysql提醒[Warning] Invalid (old?) table or database name问题的办理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • MySQL Order By语法介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • mysql数据库插入速度和读取速度的调整记录
  • MySQL Order By索引优化办法
  • MySQL Order By用法分享
  • mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''
  • MySQL Order By Rand()效率解析
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .