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个字符的数据,其存储空间相同。但是对于内存的消耗是不同的。
- 2021年度个税汇算今起开始,3月1日至3月15日需要预约,3月16日至6月30日,无需预约
- 移动端微信、企业微信中使用H5的input file时只能选择手机的图片,不能选择文档文件的解决方案
- ThinkPHP数据查询去重distinct和group by方法
- PHP实现计算剩余几天几时几分倒计时间的方法
- JS中三个点(...)是什么意思?其实它的真名叫“扩展运算符”
- js去除字符串首尾空格的十二种方案
- 支付宝已支持给微信QQ好友转账 微信支付宝互通何时能实现?
- 微软宣布Windows 11将于2021年10月5日上市
- PHP实现隐藏部分手机号码,身份证号码
- ThinkPHP6伪静态设置并隐藏默认模块名,如home