当前位置: 首页 > article >正文

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

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。

3. BOOL,BOOLEAN

是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。

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

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

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

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

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

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

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

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

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

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类型


http://www.kler.cn/a/15854.html

相关文章:

  • LLMs之Code:Qwen2.5-Coder的简介、安装和使用方法、案例应用之详细攻略
  • MySQL【七】
  • 利用OpenAI进行测试需求分析——从电商网站需求到测试用例的生成
  • 动态内存管理(c语言)
  • 《C语言程序设计现代方法》note-4 基本类型 强制类型转换 类型定义
  • Essential Cell Biology--Fifth Edition--Chapter one (6)
  • 【网络编程】网络基础
  • 人工智能之配置环境教程二:在Anaconda中创建虚拟环境安装GPU版本的Pytorch及torchvision并在VsCode中使用虚拟环境
  • leetcode 45. 跳跃游戏 II
  • KALI入门到高级【第三章】
  • iOS autorelease 示例研究
  • 读SQL进阶教程笔记14_SQL编程要点
  • 倾斜摄影超大场景的三维模型的顶层合并的轻量化处理技术
  • 信息系统项目管理师 第9章 项目范围管理
  • 如何理解自动化测试数据驱动与关键字驱动的区别?
  • 【C生万物】 指针篇 (初级)
  • 程序员都有哪些就业方向?不是所有人都能去互联网公司的!
  • Git HEAD及detached head
  • Android JetPack组件之Lifecycle
  • Linux中的阻塞机制
  • NetMQ | 发布订阅时使用含通配符的Topic
  • 第十一章 Transform组件(上)
  • 04_Uboot操作命令与其他命令
  • Shell(五)Bash行操作目录堆栈
  • gitlab部署及整合Jenkins持续构建(四)sonarqube9.9安装和使用(一步一坑)
  • 使用CXF调用WSDL