mysql中的字符串类型有哪些_mysql字符串类型说明

P粉602998670
发布: 2025-12-20 06:29:26
原创
101人浏览过
MySQL字符串类型分五类:CHAR/VARCHAR、TEXT系列、BLOB系列、ENUM/SET及字符集绑定;选型影响存储、性能与完整性,需依长度、内容、用途精准匹配。

mysql中的字符串类型有哪些_mysql字符串类型说明

MySQL 中的字符串类型主要分为五大类:定长字符串、变长字符串、大文本、二进制大对象、特殊枚举/集合。选对类型直接影响存储效率、查询性能和数据完整性。

定长与变长字符串(CHAR 和 VARCHAR)

CHAR 用于长度固定、变化少的字段,比如身份证号(18位)、手机号(11位)、国家代码等。定义为 CHAR(18) 时,无论存入多少字符,都占满 18 个字符空间,不足部分用空格补齐;读取时 MySQL 自动截去尾部空格。

VARCHAR 更适合长度波动大的内容,如用户名、标题、地址。它只占用实际字符数 + 1 或 2 字节长度标识(超 65535 才用 2 字节)。最大支持 65535 字节(受行总长限制),但注意:UTF8MB4 下一个汉字占 4 字节,所以 VARCHAR(255) 实际最多存约 63 个汉字。

  • CHAR 查询更快(因定长,定位直接),但浪费空间
  • VARCHAR 节省空间,但需额外字节记录长度,索引效率略低
  • 超过 255 字符必须用 VARCHAR,CHAR 最大只支持 255

大文本类型(TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT)

当内容明显超出几百字符,比如文章正文、日志、富文本 HTML,就该用 TEXT 系列。它们不存于主数据页,而是单独分配指针+外部存储块,因此不影响主表行宽,也避免因单行超限(65535 字节)导致建表失败。

四者区别仅在最大容量:

  • TINYTEXT:≤ 255 字节(适合短备注、标签描述)
  • TEXT:≤ 65,535 字节(常用,如博客正文、产品简介)
  • MEDIUMTEXT:≤ 16MB(适合长文档、邮件正文)
  • LONGTEXT:≤ 4GB(极少用,如整本电子书、法律文书原文)

注意:TEXT 类型不能设默认值(除非是空字符串),也不支持前缀索引以外的完整索引(需指定前 N 个字符建索引)。

JSON.NET 简单的使用 中文WORD版
JSON.NET 简单的使用 中文WORD版

本文档主要讲述的是JSON.NET 简单的使用;JSON.NET使用来将.NET中的对象转换为JSON字符串(序列化),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?)。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

JSON.NET 简单的使用 中文WORD版 0
查看详情 JSON.NET 简单的使用 中文WORD版

二进制字符串与大对象(BINARY / VARBINARY / BLOB 系列)

BINARY 和 VARBINARY 是 CHAR/VARCHAR 的二进制对应版,按字节比较、区分大小写、不依赖字符集。适合存加密密钥、token、哈希值等纯字节序列。

BLOB 系列(TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB)专用于非文本二进制数据,如图片、PDF、音频片段。它们和 TEXT 系列容量一一对应,但不经过字符集转换,也不会被当作字符串处理 —— 不能用 LENGTH() 得到字符数,而要用 OCTET_LENGTH() 或 LENGTH() 查字节数。

  • 不要用 BLOB 存图片路径,用 VARCHAR 就够了;真正要存文件本身才用 BLOB
  • BLOB 列无法参与大多数字符串函数(如 UPPER、CONCAT),需转成 HEX 或 Base64 处理

枚举与集合(ENUM 和 SET)

ENUM 表示单选,值从预定义列表中选一个,如 status ENUM('draft','published','archived')。内部以数字存储(1,2,3…),节省空间且自带约束,但增删选项需 ALTER TABLE,线上慎用。

SET 支持多选,如 permissions SET('read','write','delete','admin'),底层也是位图存储。最多支持 64 个成员,超出会报错。

  • ENUM 和 SET 都依赖字符串字面值,排序按定义顺序而非字母序
  • 插入非法值时,MySQL 默认转为空字符串(严格模式下报错)
  • 导出或迁移时要注意字符集兼容性,避免乱码导致值映射错乱

字符集与排序规则不是类型本身,但和所有字符串类型强绑定。务必统一使用 utf8mb4 字符集 + utf8mb4_0900_ai_ci(或 _as_cs)排序规则,否则 emoji、生僻字、多语言混排会出错。

以上就是mysql中的字符串类型有哪些_mysql字符串类型说明的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号