mysql 字段长度 字符 字节

在创建表的时候,给字段定义完类型之后,紧接着需要指定字段的长度,比如:varchar(20),biginit(20)等。那么问题来了,varchar代表的是字节长度,还是字符长度呢?

create table test_varchar(a varchar(20));
insert into test_varchar values('苏三说技术');
select length(a),CHARACTER_LENGTH(a) from test_varchar;

执行后的结果:

 

我们看到中文的5个字length函数统计后长度为15,代表占用了15个字节,而使用charcter_length函数统计长度是5,代表有5个字符。所以varchar代表的是字符长度,因为有些复杂的字符或者中文,一个字节表示不了,utf8编码格式的一个中文汉字占用3个字节。不同的数据库编码格式,占用不同的字节数对照表如下:

 

 

mysql除了varchar和char是代表字符长度之外,其余的类型都是代表字节长度。

int(n) 这个n表示什么意思呢?从一个列子出发:

ZEROFILL表示长度不够填充0

执行结果:

 

 mysql常用数字类型字段占用字节数对照表:

 

 

从表中可以看出bigint实际长度是8个字节,但是我们定义的a显示4个字节,所以在不满4个字节时前面填充0。满了4个字节时,按照实际的长度显示,比如:123456。但是,需要注意的是,有些mysql客户端即使满了4个字节,也可能只显示4个字节的内容,比如显示:1234。

所以bigint(4),这里的4表示显示的长度为4个字节,实际长度还是8个字节。

 

posted @   草木物语  阅读(3607)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2019-09-14 Java技术体系 JDK与JRE
2017-09-14 阻止 form 回车 自动提交
点击右上角即可分享
微信分享提示