整数类型概述

MySQL 提供了5种整数类型,用于存储不同范围的整数值,每种类型占用不同的存储空间:

 

类型名称说明存储需求有符号范围(signed)无符号范围(unsigned)
TINYINT很小的整数1字节-128 ~ 1270 ~ 255
SMALLINT小的整数2字节-32,768 ~ 32,7670 ~ 65,535
MEDIUMINT中等大小的整数3字节-8,388,608 ~ 8,388,6070 ~ 16,777,215
INT/INTEGER普通大小的整数4字节-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295
BIGINT大整数8字节-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

 

重要特性

1.取值范围计算:

    有符号:-2^(n-1) 到 2^(n-1)-1

    无符号:0 到 2^n-1

   (n=位数,1字节=8位)

 

2.显示宽度:

    仅影响显示格式,不影响实际存储和取值范围

    不足宽度时用空格填充(如 INT(5)显示123为"  123")

    超过宽度仍能完整显示(如 INT(3)存储1234显示为1234)

 

3. AUTO_INCREMENT

    整数类型可添加自增约束

    常用于主键字段

 

选择建议

 

1. 根据数据范围选择最小够用的类型

    状态标志:TINYINT

    小范围ID:SMALLINT

    常规ID:INT

    极大数值:BIGINT

 

2. 无符号选择:

    确定不会出现负值时使用UNSIGNED

    可扩大正数范围(如TINYINT UNSIGNED范围0~255)

 

3. 存储优化:

    更小的类型占用更少空间,提高查询效率

    避免过度使用BIGINT造成空间浪费

点赞(1)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)