以下试以整型(int)抛砖引玉:

一:MySQL5

以MySQL5版本为例,大多数管理员可能把自增数字、或者其它应用数字字段的列属性设置为int类型,int占用4个字节,而int又分为无符号型和有符号性。对于无符号型的范围是0 到 4294967295;有符号型的范围是-2147483648 到 2147483647。参考资料可见mysql手册:11.2. 数值类型.

当要在一个数值列内保存一个超出该列允许范围的值时,MySQL的操作取决于此时有效的SQL模式。如果模式未设置,MySQL将值裁剪到范围的相应端点,并保存裁减好的值。但是,如果模式设置为traditional(“严格模式”),超出范围的值将被拒绝并提示错误,并且根据SQL标准插入会失败。请参见mysql手册5.3.2节:“SQL服务器模式”。

如果INT列是UNSIGNED,列范围的大小相同,但其端点会变为到0和4294967295。如果你试图保存-9999999999和9999999999,以非严格模式保存到列中的值是0和4294967296。

如果在浮点或定点列中分配的值超过指定(或默认)精度和标度规定的范围,MySQL以非严格模式保存表示范围相应端点的值。

当MySQL没有工作在严格模式时,对于ALTER TABLE、LOAD DATA INFILE、UPDATE和多行INSERT语句,由于裁剪发生的转换将报告为警告。当MySQL工作在严格模式时,这些语句将失败,并且部分或全部值不会插入或更改,取决于是否表为事务表和其它因素。详情参见mysql手册5.3.2节:“SQL服务器模式”。

二:php5:

1:整型数的字长和平台有关,PHP 不支持无符号整数。

2:如果给定的一个数超出了 integer 的范围,将会被解释为 float。同样如果执行的运算结果超出了 integer 范围,也会返回 float。如果在程序中有对数字类型做比较,可能会产生问题。

3:可以查看PHP_INT_SIZE、PHP_INT_MAX,以确定整数的范围。

以下列子可供参考:

在32位服务器下:

以下是代码片段:

代码如下

[shengting@localhost ~]$ php -r "echo PHP_INT_SIZE;"

4

[shengting@localhost ~]$ php -r "echo PHP_INT_MAX;"

2147483647

[shengting@localhost ~]$ php -r "var_dump(2147483647);"

int(2147483647)

[shengting@localhost ~]$ php -r "var_dump(2147483648);"

float(2147483648)

[shengting@localhost ~]$ php -r "var_dump(-2147483647);"

int(-2147483647)

[shengting@localhost ~]$ php -r "var_dump(-2147483648);"

float(-2147483648)

[shengting@localhost ~]$ php -r "var_dump(4294967295);"

float(4294967295)

[shengting@localhost ~]$ php -r "var_dump(4294967296);"

float(4294967296)

在64位服务器下:

以下是代码片段:

代码如下

[root@login shengting]# php -r "echo PHP_INT_SIZE;"

8

[root@login shengting]# php -r "echo PHP_INT_MAX;"

9223372036854775807

[root@login shengting]# php -r "var_dump(2147483647);"

int(2147483647)

[root@login shengting]# php -r "var_dump(2147483648);"

int(2147483648)

[root@login shengting]# php -r "var_dump(-2147483647);"

int(-2147483647)

[root@login shengting]# php -r "var_dump(-2147483648);"

int(-2147483648)

[root@login shengting]# php -r "var_dump(4294967295);"

int(4294967295)

[root@login shengting]# php -r "var_dump(4294967296);"

int(4294967296)

三:C/C++

对C/C++也存在有符号和无符号类型的问题。

对于32位系统,如果使用有符号int、long来定义变量保存唯一号就可能出现溢出,并出现上述问题。

对于64位系统,如果使用int来定义变量保存唯一号就可能出现溢出,并出现上述问题

mysql的int多少溢出_mysql 整型(int)数字溢出在程序和数据库设计中的考虑相关推荐

  1. python 为什么要用astype()函数对numpy数据类型进行转换,而不直接指定其dtype?float(64) float(32) int(64) int(32)(转换为整型int)

    numpy中的数据类型转换,不能直接改原数据的dtype! 只能用函数astype().否则你的元素个数可能会倍增或倍减,数值也会对应不上! 第一种情况: import numpy as npa = ...

  2. 1.2 String字符串和整型int的相互转换,valueOf() 、parse()和toString()

    String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的.前面部分主要讲解了 String 转换 int 和 int 转换 String 方法,后面部分对 va ...

  3. Java String字符串和整型int的相互转换

    String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的. String转换为int String 字符串转整型 int 有以下两种方式: Integer.pa ...

  4. Java教程:Java String字符串和整型int的相互转换

    Java教程String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的.本节前面部分主要讲解了 String 转换 int 和 int 转换 String 方法, ...

  5. 为什么Python中整型不会溢出

    前言 本次分析基于 CPython 解释器,python3.x版本 在python2时代,整型有 int 类型和 long 长整型,长整型不存在溢出问题,即可以存放任意大小的整数.在python3后, ...

  6. c语言中整形变量,C语言基本数据类型:整型(int)用法详解

    1.整型int C语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int是整型之一,一般被称为整型.以后,在不产生歧义的情况下,我们把整数类型和int都称为整 ...

  7. [小技巧][JAVA][转换]整型int与字符char相互转换

    借助String.valueOf()过渡 char -> String ->int char c; String str = String.valueOf(c); int i = Inte ...

  8. 【转载】 C#中使用int.TryParse方法将字符串转换为整型Int类型

    在C#编程过程中,将字符串string转换为整型int过程中,时常使用的转换方法为int.Parse方法,但int.Parse在无法转换的时候,会抛出程序异常,其实还有个int.TryParse方法可 ...

  9. Golang将IP转为整型int存储

    一般来讲ip都是存储一个字符串类型,但是在数据库存储大量ip得情况下int类型要比字符串更加节省空间和方便操作比如判断,或者计算hash等,尤其是各种防火墙规则的过滤算法,也可以提高索引速度,本篇文章 ...

最新文章

  1. Oracle中判断空游标的方法
  2. pywinauto 同花顺_东方财富、同花顺、恒生电子,到底谁是互联网金融老大?
  3. (转)mybatis常用jdbcType数据类型
  4. 远程连接mysql库问题
  5. margin折叠-从子元素margin-top影响父元素引出的问题
  6. java基础之多线程笔记
  7. 别具一格的HAO3GP整站源码花坛
  8. LeetCode刷题(1)
  9. mysql 字段值保留2位小数
  10. 玩转大数据系列之一:数据采集与同步
  11. php+美图秀秀,美图秀秀头像编辑器的使用? thinkphp+七牛方案
  12. pgadmin4使用教程
  13. 3dmax2020卸载/安装失败/如何彻底卸载清除干净3dmax2020注册表和文件的方法
  14. 二元线性方程组与二阶行列式
  15. mysql挂马_虚拟主机/数据库中挂马清理方法
  16. svn访问路径提示Unable to connect to a repository at url
  17. x265 HEVC编码器,基于x264 介绍
  18. 商品ETF的分类及运作模式
  19. 前端JS校验银行卡卡号和身份证号码(附ES6版方法)
  20. 信用支付一路狂奔,未来这块蛋糕该怎么吃

热门文章

  1. 把女友升级为老婆的时候发生的BUG(二)
  2. 自己动手开发编译器(十)miniSharp语法分析器
  3. 禁止和开启组策略的批处理
  4. 电脑故障维修判断指导大全(5)
  5. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 26 章 高可用、负载均衡和复制_26.4. 日志传送的替代方法...
  6. EIP-712 (一个对结构化数据的哈希标准)
  7. 怎样在Swift中使用NSError
  8. sqlite3移植到arm linux
  9. rabbit mq 入门
  10. windows2003+SQL server2005群集-故障转移