2人参与 • 2025-10-25 • Mysql
desc 表名称 ; show create table 表名称 ;
select length(title) from nx_blog title是某一列 nx_blog是表名
char和varchar`类型相似,但它们被存储和检索的方式不同
varchar值存储为1字节或2字节长度前缀加数据。长度前缀表示值中的字节数。
如果值不超过255个字节,则列使用一个长度字节;如果值可能需要超过255个字节,则列使用两个长度字节
| 值 | char(4) | 需要存储 | varchar(4) | 需要存储 |
|---|---|---|---|---|
| '' | ' ' | 4字节 | '' | 1个字节 |
| 'ab' | 'ab ' | 4字节 | 'ab' | 3个字节 |
| 'abcd' | 'abcd' | 4字节 | 'abcd' | 5个字节 |
| 'abcdefgh' | 'abcd' | 4字节 | 'abcd' | 5个字节 |
其实mysql无论是char还是varchar指定的长度都是字符的长度,也就是能存储多少个字符
字符是什么?
扩展,但是没必要记住,我们只要知道上面utf-8的就行了,因为一般设计mysql数据库表都是utf-8
符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。
字节是什么?
比特是什么?
上面说完了mysql,但是java里面的默认编码方式是什么呢?
string.getbytes(encoding)方法是获取指定编码的byte数组表示
通常一个汉字在gbk/gb2312是2个字节,utf-8是3个字节。
如果不指定encoding则取系统默认的encoding。但是可以更改
public static void main(string[] args) throws unsupportedencodingexception {
string str = "琬";
system.out.println("str:"+str.length());
system.out.println("unicode:"+str.getbytes("unicode").length);
system.out.println("utf-8:"+str.getbytes("utf-8").length);
//其实每页所谓的系统默认不默认,编码方式都可以改的
//你网上搜索idea更改默认编码方式,一大堆,所以这里默认的是idea默认的,不是java默认的
system.out.println("系统默认:"+str.getbytes().length);
}
输出结果:
str:1
unicode:4
utf-8:3
系统默认:3
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论