MySQL各类数据类型的最大长度与范围限制
在MySQL中,每种数据类型都有自己的最大长度限制,首先要了解一下各种字符咱用的空间。
UTF-8 : 一个英文/数字字符占1个字节,一个中文(含繁体)字符占3个字节。
Unicode: 一个英文/数字字符占2个字节,一个中文(含繁体)字符占2个字节。
标点符号: 英文标点占1个字节,中文标点占2个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。
MySQL对应不同的数据类型都有最大长度与范围限制,当存储的数据超出上述限制时,应选择更大的数据类型,以免造成数据溢出和损失。MySQL中不同的数据类型有不同的最大长度限制,主要如下:
1、字符型
char(n):最大长度为255个字符
varchar(n):最大长度为65535个字符(受字符编码影响)
tinytext:最大长度为255个字符
text:最大长度为65535个字符(5.5.3之前),或21844字符(5.5.3之后,utf8mb4编码)
mediumtext:最大长度为16777215个字符
longtext:最大长度为4294967295个字符
2、数值型
tinyint: 1字节,范围-128~127
smallint: 2字节,范围-32768~32767
mediumint: 3字节,范围-8388608~8388607
int/integer: 4字节,范围-2147483648~2147483647
bigint: 8字节,范围-9223372036854775808~9223372036854775807
3、日期时间型
date: 3字节,范围’1000-01-01’到’9999-12-31’
time: 3字节,范围’-838:59:59’到’838:59:59’
year: 1字节,范围1901到2155
datetime: 8字节,范围’1000-01-01 00:00:00’到’9999-12-31 23:59:59’
4、浮点数型
float(n):4字节,n代表数字位数,总位数不超过24
double(n):8字节,n代表数字位数,总位数不超过53
decimal(m,d):m+2字节,m代表整数位数,d代表小数位数,总位数不超过65
另外需要科普一下常用的char、varchar字符类型的长度的区别:
char:固定长度,最大长度是255字符。适合用在身份证号码、手机号码等定、等长的加密密码等。
varchar:可变长度,最大长度65535字节,其实最多只能存储65532个字节,还有3个字节用于存储长度。
1、char的存取速度优于varchar
2、char(20)表示这个字段最多存20个字符,如果只存了16个字符,那么也会占用20个字符的空间
3、varchar(20)表示这个字段最多存20个字符,如果只存了16个字符,那么只占用16个字符的空间
4、即使使用Varchar数据类型,也不能够太过于慷慨!比如你只使用到90个字符,VARCHAR(100)与VARCHAR(200),虽然他们用来存储90个字符的数据,其存储空间相同。但是对于内存的消耗是不同的。
- Unicode15.0标准发布,新增鹅、姜、驴、豌豆等emoji表情
- 阿里云ECS云服务器CentOS7云盘在线扩容操作
- CRM系统中的线索、商机、联系人、客户分别是什么,它们之间的关系是如何转换的?
- lnmp,PHP程序访问网站主目录外的文件访问错误的解决方案
- Windows Terminal Preview 1.15 发布
- ThinkPHP6的伪静态规则整理(apache、nginx 、IIS)
- Vue 3.2 刚刚发布!新的单文件组件,响应式性能大幅提升
- 用好CSS的clamp()这个新特性,轻松实现响应式布局,特别是移动端
- PHP快速查找value所在数组的索引值
- 使用搜狐IP地址查询接口获取IP所在城市

