整数类型的存储和范围(来自mysql手册)

类型
字节
最小值
最大值
(带符号的/无符号的)
(带符号的/无符号的)
TINYINT
1
-128
127
0
255
SMALLINT
2
-32768
32767
0
65535
MEDIUMINT
3
-8388608
8388607
0
16777215
INT
4
-2147483648
2147483647
0
4294967295
BIGINT
8
-9223372036854775808
9223372036854775807
0
18446744073709551615

注:带符号的/无符号的 可设置例如   Alter Table tablename  ADD fieldname  TINYINT(1) UNSIGNED

表格一共有四列分别表式:字段类型, 占用字节数, 允许存储的最小值, 允许存储的最大值.
计算机存储单位的换算:
1B=8bit (位. 存放一位二进制数,即 0 或 1,最小的存储单位)

1KB=1024B(byte 字节)

1MB=1024KB(千字节)

拿tinyint举例
tinyint类型, 占用字节数为1byte=8bit  即8个1组成的 二进制(11111111)=256 ,如果设置了无符号最大只能存255  有符号为-128~127 
同理拿int类型为例:

int类型, 占用字节数为4byte, 学过计算机原理的同学应该知道, 字节(byte)并非是计算机存储的最小单位, 还有比字节(byte)更小的单位, 也就是位(bit),一个位就代表一个0或1; 8个位组成一个字节; 一般字节用大写B来表示byte, 位用小写b来表示bit.

那么根据int类型允许存储的字节数是4个字节, 我们就能换算出int UNSIGNED(无符号)类型的能存储的最小值为0, 最大值为4294967295(即4B=32b, 最大值即为32个1组成);

接下来我们再说说我们建表时的字段长度到底是怎么一回事.

CREATE TABLE `test` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`number` INT( 5 ) NOT NULL
) ENGINE = MYISAM ;

mysql手册中这个长度/值用"M"来表示的.  M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关;

这句话看上去不太容易理解, 因为这里有个关键词容易让我们混淆, "最大显示宽度"我们第一反应是该字段的值最大能允许存放的值的宽度. 以为我们建了int(1),就不能存放数据10了, 其实不是这个意思.

这个M=5我们可以简单的理解成为, 我们建立这个长度是为了告诉MYSQL数据库我们这个字段的存储的数据的宽度为5位数,  当然如果你不是5位数(只要在该类型的存储范围之内)MYSQL也能正常存储,  这也就能解释以上标红的话.

我们把这个字段的"属性"修改为UNSIGNED ZEROFILL看一下效果.
[ZEROFILL]
ALTER TABLE `test` CHANGE COLUMN `number` `number` INT(5) ZEROFILL UNSIGNED NOT NULL DEFAULT '0';

我们看到现在我的number字段, 长度(M)=5, 属性=UNSIGNED ZEROFILL(无符号,用0来填充位数),  设置这个属性后系统会自动把number字段M不够5位的在左侧用0来填充; 效果如下

附加
bit、byte、位、字节、汉字、字符
bit、byte、位、字节、汉字的关系1 bit     = 1  二进制数据1 byte  = 8  bit1 字母 = 1  byte = 8 bit1 汉字 = 2  byte = 16 bit1. bit:位一个二进制数据0或1,是1bit;2. byte:字节存储空间的基本计量单位,如:MySQL中定义 VARCHAR(45)  即是指 45个字节;1 byte = 8 bit3. 一个英文字符占一个字节;1 字母 = 1 byte = 8 bit4. 一个汉字占2个字节;1 汉字 = 2 byte = 16 bit

  

转载于:https://www.cnblogs.com/wangxusummer/p/5741609.html

mysql int类型的长度值相关推荐

  1. 详解mysql int类型的长度值问题

    提问: MySQL的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同.如果不同,分别是多大? 回答: 不同,int(3)最多显示3位无符号整体,in ...

  2. mysql毫秒值转成日期,MySQL日期类型和毫秒值相互转换

    有时需要将日期类型值转换成毫秒值,有时也要将毫秒值转换成日期,为了更方便,满足查询的需要. 现在,新建一张数据库表t_stu_info,并向表里插入数据 use test; show tables; ...

  3. MySQL int 类型长度有啥用? int(11) 和 int(20) 有啥区别?

    MySQL int 类型长度有啥用? 数值类型设置的长度并不影响该数值字段的取值范围 所以正常来说没什么用. 其长度只有在设置 ZEROFILL 即 "填充零" 后才有所意义. 比 ...

  4. Navicat中设计表时int类型的长度说明

    文章目录 前言 总结 实例 前言 平时开发中经常在Navicat中设计表,字段类型中会使用int类型(包括tinyint.smallint.mediumint.int.bigint等),在Navica ...

  5. int 类型的取值范围

    大伙都知道int类型的 取值范围是 -2147483648 到 2147483647         那为什么不是                              -2147483647 到 ...

  6. 设以下变量均为int类型,则值不等于7的表达式是

    设以下变量均为int类型,则值不等于7的表达式是 A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1) C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+ ...

  7. mysql请输入一个有效类型的长度值_MySQL数据库基础(三)——SQL语言

    MySQL数据库基础(三)--SQL语言 发布时间:2020-05-19 16:40:05 来源:51CTO 阅读:10596 作者:天山老妖S MySQL数据库基础(三)--SQL语言 一.SQL语 ...

  8. Mysql 数据库表中 int 类型的长度

    Mysql 我们平时创建一个表对 int 类型习惯设置 int(11) ,不知道你有没有试过设置其他长度有什么影响吗? 下面咱们来实验一下啦. 以下是每个整数类型的存储和范围: 类型 字节 最小值 最 ...

  9. MySQL字段int类型的长度INT(M)

    关于mysql数据库中,字段长度的一个解释,一直以为int长度为1时,只能插入0-9的数字,发现完全不是,具体如下: 1.varchar类型的长度是指这个字段的字符(字母或汉字)个数. 2.数字类型的 ...

最新文章

  1. 经历能让人变得更理智更成熟
  2. Linux文件与目录的rwx权限
  3. 吴恩达机器学习笔记:(五)区别于微积分的正规方程求解最优解
  4. 为什么用U盘做启动盘
  5. C#类型转换 (非原创)
  6. CPU/ABI显示No system images installed for this target的解决方案
  7. wordpress html音乐,WordPress引用百度Ting音乐方法
  8. 亿佰特Lora网关技术为马拉松保驾护航
  9. 小货车DataAdapter对象 1129
  10. 500 cannot be cast to javax.xml.registry.infomodel
  11. matlab barh命令,matlab中的bar, barh
  12. android studio module build,踩坑将一个AndroidStudio项目变成一个module引入到自己的项目中...
  13. mysql msdtc 不支持_如何解决服务器上的msdtc不可用问题
  14. 大工之星编程挑战赛第五周题解
  15. 计算机网络实验二:网络基础编程实验
  16. php fatal 和php error,从PHP Fatal error: Uncaught Error: Class '' not found in php:说起
  17. 在python里调用c++的DLL出现Windows Error -529697949
  18. H5 嵌入条码和二维码生成
  19. IPv6进阶:IPv6 过渡技术之 NAT64(IPv6 节点主动访问 IPv4 节点-地址池方式)
  20. Android--模拟点击屏幕

热门文章

  1. 【hihocoder - offer编程练习赛60 C】路径包含问题(LCA,树上倍增)
  2. 【CF#-931A】 Friends Meeting(思维)
  3. linux 判断网卡是否异常_如何判断linux网卡故障?
  4. 剑灵傲雪区最新服务器,12.8日势力优化具体内容 各大区服务器互通情况
  5. * 将字符串日期时间格式,转为毫秒
  6. linux的进程pcd,LINUX下查看点云图————point cloud(.ply .vtk .pcd)
  7. 用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
  8. 小猫的java基础知识点汇总(上)
  9. 如何在博客内添加音乐
  10. python基础小白题5