MySQL字符串类型分五类:CHAR/VARCHAR、TEXT系列、BLOB系列、ENUM/SET及字符集绑定;选型影响存储、性能与完整性,需依长度、内容、用途精准匹配。

MySQL 中的字符串类型主要分为五大类:定长字符串、变长字符串、大文本、二进制大对象、特殊枚举/集合。选对类型直接影响存储效率、查询性能和数据完整性。
CHAR 用于长度固定、变化少的字段,比如身份证号(18位)、手机号(11位)、国家代码等。定义为 CHAR(18) 时,无论存入多少字符,都占满 18 个字符空间,不足部分用空格补齐;读取时 MySQL 自动截去尾部空格。
VARCHAR 更适合长度波动大的内容,如用户名、标题、地址。它只占用实际字符数 + 1 或 2 字节长度标识(超 65535 才用 2 字节)。最大支持 65535 字节(受行总长限制),但注意:UTF8MB4 下一个汉字占 4 字节,所以 VARCHAR(255) 实际最多存约 63 个汉字。
当内容明显超出几百字符,比如文章正文、日志、富文本 HTML,就该用 TEXT 系列。它们不存于主数据页,而是单独分配指针+外部存储块,因此不影响主表行宽,也避免因单行超限(65535 字节)导致建表失败。
四者区别仅在最大容量:
注意:TEXT 类型不能设默认值(除非是空字符串),也不支持前缀索引以外的完整索引(需指定前 N 个字符建索引)。
本文档主要讲述的是JSON.NET 简单的使用;JSON.NET使用来将.NET中的对象转换为JSON字符串(序列化),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?)。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
BINARY 和 VARBINARY 是 CHAR/VARCHAR 的二进制对应版,按字节比较、区分大小写、不依赖字符集。适合存加密密钥、token、哈希值等纯字节序列。
BLOB 系列(TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB)专用于非文本二进制数据,如图片、PDF、音频片段。它们和 TEXT 系列容量一一对应,但不经过字符集转换,也不会被当作字符串处理 —— 不能用 LENGTH() 得到字符数,而要用 OCTET_LENGTH() 或 LENGTH() 查字节数。
ENUM 表示单选,值从预定义列表中选一个,如 status ENUM('draft','published','archived')。内部以数字存储(1,2,3…),节省空间且自带约束,但增删选项需 ALTER TABLE,线上慎用。
SET 支持多选,如 permissions SET('read','write','delete','admin'),底层也是位图存储。最多支持 64 个成员,超出会报错。
字符集与排序规则不是类型本身,但和所有字符串类型强绑定。务必统一使用 utf8mb4 字符集 + utf8mb4_0900_ai_ci(或 _as_cs)排序规则,否则 emoji、生僻字、多语言混排会出错。
以上就是mysql中的字符串类型有哪些_mysql字符串类型说明的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号