char* 长度_varchar有最大长度吗

在MySQL中,varchar类型有最大长度限制,为65535个字节。varchar(100)在5.1版本后表示100个字符。char类型最大长度为255个字符。每行数据大小不超过65535字节,varchar需要额外字节存储长度,可能为1或2字节。考虑null标识、字符集和长度前缀,可以计算varchar的最大长度。
摘要由CSDN通过智能技术生成

先说结论,mysql 中的 varchar 是有最大长度限制的,这个值是 65535 个字节。

varchar(100),这个 100 的单位是啥,这个单位其实在不同版本中是不一样的。

在早期低版本中代表的是字节,具体哪个版本我也没去验证了,后来被改成了字符,不过可以肯定的是在 5.1 版本后, varchar(100) 就是指 100 个字符。

说到 varchar ,一般都会拿 char 来做比较说明。

char 是固定长度,其单位也是字符,比如 char(10),就表示不管你给的什么值,都会被 mysql 固定保存成 10 个字符。

如果给的字符长度小于 10,那么在尾部就会自动用空格补齐。

如果大于 10,在严格模式(strict sql mode)下就会报错,在非严格模式下就会对内容做自动截取操作。

另外 char 也是有最大长度限制的,最大长度为 255, 即 char 类型最多只能保存 255 个字符,char(256) 这都是错误的写法,可以看下面的例子。

##创建一个表,同时声明address字段长度为256会报错,最大为255
mysql> create table test2 ( address char(256) );
ERROR 1074 (42000): Column length too big for column 'address' (max = 255); use BLOB or TEXT instead

下面是 char 和 varchar 对于同一个字符所需要的不同的存储空间,这里假设使用的是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值