下表是各类型信息:

1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是-128到127

1. BIT[M]

位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1

2. TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4

很小的整数。带符号的范围是-128到127。无符号的范围是0到255。  BOOL,BOOLEAN是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。

3. SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6

小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。

4. MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9

中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。

5. INT[(M)] [UNSIGNED] [ZEROFILL] M默认为11

普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的。

M指最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。 如果字段数据类型是 int(4),则:当显示数值
10 时,在左边要补上 “00”;

当显示数值 100 是,在左边要补上“0”;

当显示数值 1000000 时,已经超过了指定宽度“(4)”,因此按原样输出。

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

int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。说白了,除了显示给用户的方式有点不同外,int(M)
跟 int 数据类型是相同的。 int(M) 只有跟 zerofill 结合起来,才能使我们清楚的看到不同之处

定义时需要注意是否使用 unsigned 符号类型,再就是显示补齐宽度值

6. BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20

大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。

tinyint(1) 和 tinyint(4) 中的1和4并不表示存储长度,只有字段指定zerofill是有用,
如tinyint(4),如果实际值是2,如果列指定了zerofill,查询结果就是0002,左边用0来填充。

char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:

char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.

(在检索操作中那些填补出来的空格字符将被去掉)

在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).

在MySQL中用来判断是否需要进行对据列类型转换的规则:

  1. 在一个数据表里,如果每一个数据列的长度都是固定的,那么每一个数据行的长度也将是固定的.
  2. 只要数据表里有一个数据列的长度的可变的,那么各数据行的长度都是可变的.
  3. 如果某个数据表里的数据行的长度是可变的,那么,为了节约存储空间,MySQL会把这个数据表里的固定长度类型的数据列转换为相应的可变长度类型.

例外:长度小于4个字符的char数据列不会被转换为varchar类型


注释

在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 MySQL中,int 数据类型是主要的整数数据类型。

在数据类型优先次序表中,bigint 位于 smallint 和 int 之间。

只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。MySQL不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。


简单说一下字节与字符的区别:

2个字节一个汉字,比如“的”;
全角标点2个字节,半角标点一个字节
一个字母一个字节
字符指一个字母或一个字或一个标点或一个符号,不一定几个字节,看情况定
————————————————

原文链接:https://blog.csdn.net/shuke_zheng/article/details/78979343
http://www.jb51.net/article/31946.htm

Mysql中int、bigint、smallint 和 tinyint的区别详细介绍相关推荐

  1. mysql bigint 运算_mysql中int、bigint、smallint 和 tinyint的区别详细介绍

    最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...

  2. mysql smallint int_mysql中int、bigint、smallint 和 tinyint的区别详细介绍

    1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是 -128到127 1.BIT[M] 位字段类型,M表示每个值的位数,范围从1到64,如 ...

  3. c++ int转unsigned int_mysql中int、bigint、smallint 和 tinyint的区别详细介绍

    1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是 -128到127 1.BIT[M] 位字段类型,M表示每个值的位数,范围从1到64,如 ...

  4. MYSQL数据类型-整数数据类型(bigInt、int、smallint、tinyint)区别

    整数型数据包括bigint型.int型.smallint型和tinyint型 bigint型数据的存储大小为8个字节,共64位.其中63位用于表示数值的大小,1位用于表示符号.bigint型数据可以存 ...

  5. mysql smallint 长度_转:mysql中int、bigint、smallint 和 tinyint的区别与长度的含义

    bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. P.S. b ...

  6. mysql中int、bigint、smallint 和 tinyint的区别与长度的含义

    最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...

  7. mysql中bigint、int、mediumint、smallint 和 tinyint的区别

    最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...

  8. mysql中smallint是什么意思_mysql中int、bigint、smallint 和 tinyint的区别与长度的含义【转】...

    最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...

  9. smallint mysql_mysql中int、bigint、smallint 和 tinyint的区别与长度的含义

    最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...

最新文章

  1. 清华系“AI帮”崛起,要驱动1500亿元产业规模
  2. Java stackoverflowerror异常与outofmemoryerror异常区别
  3. 致年轻的创业者:人脉没那么重要
  4. BST | 1064 完全二叉搜索树
  5. 125. Valid Palindrome
  6. 算法题存档20191223
  7. pip 错误:ModuleNotFoundError: No module named pip
  8. oracle24801错误,[数据库]oracle错误(ORA
  9. python闭包和函数调用区别_python – 函数闭包与可调用类
  10. 学生用计算机怎么玩俄罗斯方块,回忆小霸王童年 如何在电脑上玩俄罗斯方块环游记...
  11. LoadRunner11下载、安装与破解
  12. linux 3.10 网卡驱动程序示例,Centos7安装万兆网卡驱动
  13. 笔记本指纹识别linux版驱动程序,联想Thinkpad指纹识别驱动
  14. React的调和过程(Reconciliation)
  15. 如何让你的技术团队成员自觉工作
  16. android 获取短信中心号码,无法发短信,短信中心号码设置 解决办法!!!
  17. 沪牌软件操作开发说明
  18. 学生-课程数据库中的Student表中的学号属性为什么用英文Sno表示?
  19. jmeter优化记录文档
  20. 深度技术 GhostXP SP3 2011_06 极速体验版

热门文章

  1. 失物招领php_我的Mac上“失物招领”文件夹中的大型iNode文件是什么?
  2. 游戏设计自学记录(7)
  3. CAVE: A Visual Analytics System for Exploratory Columnar Data Augmentation Using Knowledge Graphs
  4. 百度收银台支付开通指引说明
  5. Android Studio生成签名证书以及证书指纹信息的获取
  6. 832计算机专业基础,2020年福建师范大学832计算机应用综合专业硕士研究生入学考试大纲...
  7. SQL - 将查询结果插入到另一张表中
  8. fwrite写文件的问题解析
  9. 2018杭电暑假多校知识点总结(附大一结语)
  10. c# sql Server 连接 数据库教程