mysql 字符串类型问题

mysql 字符串类型问题,第1张

1 注意事项一,varchar 同时受字符集、行长度的影响。

在使用多字节编码的字符集时,最大实际是 65535/编码字节长度,如使用gbk时,最大就是32767;而utf8编码字节长度为3,因此最大长度不能超过21845。

此外,varchar 的最大长度也受限于行长度,行长度即所有列的长度和,行长度限制为65535字节;因此,如有很多列,实际可定义的列长度会受影响。

2 注意事项二,当出现注意事项一中的情况下,可使用text类型代替varchar。

3 注意事项三,由于mysql在定义varchar时,会自动将大于65535或gbk的32767的类型转化为mediumtext,因此不要误认为varchar可以取大于这个长度的值。

使用 show create table ... 来查看便知;

有时,由于自动转化的原因,会出现一些很奇怪的现象:

create table c (a varchar(20000), a2 varchar(20000), a3 varchar(40000)) --会失败,提示超过行长度

create table c (a varchar(20000), a2 varchar(40000), a3 varchar(40000)) --则会成功,后两列均转化为 mediumtext

一、数字类型

二、字符串类型

另外,当varchar太大时,会自动转化为text

大于varchar(255)变为 tinytext

大于varchar(500)变为 text

大于varchar(20000)变为 mediumtext

三、日期和时间类型

DATE3 个字节

DATETIME 8 个字节

TIMESTAMP 4 个字节

TIME 3 个字节

YEAR 1 字节


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7678199.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存