加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql实例MySQL动态修改varchar长度的方法

发布时间:2020-12-12 02:26:59 所属栏目:MySql教程 来源:网络整理
导读:《Mysql实例MySQL动态修改varchar长度的方法》要点: 本文介绍了Mysql实例MySQL动态修改varchar长度的方法,希望对您有用。如果有疑问,可以联系我们。 虽然这种情况不应该发生,通常像我们关系型数据库,我们应该是事先设计好,以后不能改动,但是由于之前工作

《Mysql实例MySQL动态修改varchar长度的方法》要点:
本文介绍了Mysql实例MySQL动态修改varchar长度的方法,希望对您有用。如果有疑问,可以联系我们。

虽然这种情况不应该发生,通常像我们关系型数据库,我们应该是事先设计好,以后不能改动,但是由于之前工作的疏忽,其实说实话,也不仅仅是我个人的疏忽,主要是沟通上的原因,当然数据库毕竟是我设计的,所以,还是自我批评一下.MYSQL学习

说一下情况:MySQL字段有个varchar值字段设置的太短了,设置了30个,(我依稀记得varchar是可扩展的,当然现实并不容忍我的依稀),所以我只能找一个办法在保证数据库数据不变的情况下,动态修改varchar字段的长度,找了一段时间,终于让我找到了.MYSQL学习

alter table 表名 modify column 字段名 varchar(数量);

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

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

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

那么对英文当然是50
MYSQL学习

那么对中文呢
MYSQL学习

utf-8的中文占3个字节
MYSQL学习

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

mysql varchar(50) 不管中文 还是英文 都是存50个的MYSQL学习

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

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

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

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

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

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

以上所述是小编给大家介绍的MySQL动态修改varchar长度的办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对编程之家PHP网站的支持MYSQL学习

编程之家培训学院每天发布《Mysql实例MySQL动态修改varchar长度的方法》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读