当前位置:首页 > Mysql教程 > 列表

mysql int范围与最大值分析

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-14 11:26:04 浏览: 评论:0 

在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度,这个代表显示宽度.

整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节。

int是整型,(11)是指显示字符的长度,但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示00000000001 ~~~00000000010,当字符的位数超过11,它也只显示11位,如果你没有加那个让它未满11位就前面加0的参数,它不会在前面加0

声明整型数据列时,我们可以为它指定个显示宽度M(1~255),如INT(5),指定显示宽度为5个字符,如果没有给它指定显示宽度,MySQL会为它指定一个默认值。显示宽度只用于显示,并不能限制取值范围和占用空间,如:INT(3)会占用4个字节的存储空间,并且允许的最大值也不会是999,而是INT整型所允许的最大值。

MySQL有五种整型数据列类型,即TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT。它们之间的区别是取值范围不同,存储空间也各不相同。

在整型数据列后加上UNSIGNED属性可以禁止负数,取值从0开始。

int范围:

  1. Type Bytes Minimum Value Maximum Value  
  2.     (Signed/Unsigned) (Signed/Unsigned)  
  3. TINYINT 1 -128 127  
  4.     0 255  
  5. SMALLINT 2 -32768 32767  
  6.     0 65535  
  7. MEDIUMINT 3 -8388608 8388607  
  8.     0 16777215   --phpfensi.com 
  9. INT 4 -2147483648 2147483647  
  10.     0 4294967295  
  11. BIGINT 8 -9223372036854775808 9223372036854775807  
  12.     0 18446744073709551615  

下面为官网的说明,代码如下:

  1. Be careful when considering ENUM('T','F'as "true binary"
  2.  
  3. Example: 
  4. CREATE TABLE `bits` ( 
  5. `val` ENUM('T','F'NOT NULL 
  6. ); 
  7.  
  8. mysql> INSERT INTO `bits` (`val`) VALUES ('W'), ('T'), ('F'); 
  9. Query OK, 3 rows affected, 1 warning (0.00 sec) 
  10. Records: 3 Duplicates: 0 Warnings: 1 
  11.  
  12. mysql> SHOW WARNINGS; 
  13.  
  14.  
  15.  
  16. +---------+------+------------------------------------------+| Level   | Code | Message                                  |+---------+------+------------------------------------------+| Warning | 1265 | Data truncated for column 'val' at row 1 |+---------+------+------------------------------------------+1 row in set (0.00 sec) 
  17.  
  18. mysql> SELECT COUNT(DISTINCT val) FROM bits; 
  19.  
  20. +---------------------+| COUNT(DISTINCT val) |+---------------------+|                   3 |+---------------------+1 row in set (0.00 sec) 
  21.  
  22. Well, shouldn't a binary type have only two distinct values
  23. (Note that it isn't NULL.) 
  24.  
  25. Explanation from manual (10.4.4. The ENUM Type): 
  26. ----- 
  27. If you insert an invalid value into an ENUM (that is, a string not present in the list of permitted values), the empty string is inserted instead as a special error value. This string can be distinguished from a “normal” empty string by the fact that this string has the numeric value 0. More about this later

Tags: int最大值 int范围值

分享到: