您正在使用 IPV4 [44.192.115.114] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
悟空收录网       [公益]保护绿色环境,构建和谐社会      

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中      
[公益] 地球是我家,绿化靠大家      
2023年 中秋节 -2
2023年 国庆节 0
2024年 元 旦 92
2024年 春 节 132
 
您现在的位置:首页 >> 数据库 >> 内容
本类新增
本类热门文章
MySQL动态修改varchar长度的方法
内容摘要: altertable表名modifycolumn字段名varchar(数量);这个功能还是比较强大的,但是还是提醒大家最好设计的时候就不要出现这种问题啊。PS:mysql中的设置varchar长度问题如果某一项中设置的是varchar(50)那么对英文当然是50那么对中文呢utf-8的中文占3个字节那么,这个varchar(50)是不是只能存16个汉字了?m......
altertable表名modifycolumn字段名varchar(数量);

这个功能还是比较强大的,但是还是提醒大家最好设计的时候就不要出现这种问题啊。

PS:mysql中的设置varchar长度问题

如果某一项中设置的是varchar(50)

那么对英文当然是50

那么对中文呢

utf-8的中文占3个字节

那么,这个varchar(50)是不是只能存16个汉字了?

mysqlvarchar(50)不管中文还是英文都是存50个的

MySQL5的文档,其中对varchar字段类型这样描述:varchar(m)变长字符串。M表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定,最大有效长度是65,532字节)。

为何会这般变换?真是感觉MySQL的手册做的太不友好了,因为你要仔细的继续往下读才会发现这段描述:MySQL5.1遵从标准SQL规范,并且不删除VARCHAR值的尾部空格。VARCHAR保存时用一个字节或两个字节长的前缀+数据。如果VARCHAR列声明的长度大于255,长度前缀是两个字节。

好了,貌似懂了一点。但具体他说的长度大于255时使用2个字节长度前缀,小学减法题:65535-2=65533啊。不知道这些大牛如何计算的,暂且保留疑问吧?

注:我测试了一下使用UTF8编码,varchar的最大长度为21854字节。

在mysql5.0.45版本,数据库编码utf8下进行测试:varchar最长定义为21785。也就是说不论字母、数字、汉字,只能放21785个。

推想:varchar字节最大65535,utf8编码一个字符3个字节65535/3=21785。

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:Mysql 5.6添加修改用户名和密码的 下一篇:安装Oracle加载数据库错误areas
发布日期:2023/6/2
手机扫二维码直达本页
发布时间:11:00:49
点  击:15
录  入:齐天大圣
相关文章
Baidu
YiJiaCMS 7.2.2 build230830(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,Cloudflare提供加速防护
Copyright©2000-2023