全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-15 7 分钟 ✍️ juanwangdev

MySQL 字符串类型

MySQL 字符串类型用于存储文本数据,不同类型有不同的存储方式和适用场景。

类型对照表

类型最大长度特点用途
CHAR255字符定长短固定长度
VARCHAR65535字节变长可变长度
TINYTEXT255字节变长短文本
TEXT65535字节变长普通文本
MEDIUMTEXT16MB变长中等文本
LONGTEXT4GB变长长文本

CHAR 与 VARCHAR

SQL
-- CHAR 定长,不足补空格
CREATE TABLE users (
    code CHAR(10),      -- 固定10字符
    name VARCHAR(50)    -- 最多50字符
);

INSERT INTO users VALUES ('001', '张三');
INSERT INTO users VALUES ('0010020030', '李四');

-- 查询时 CHAR 会去掉尾部空格
SELECT code, LENGTH(code) FROM users;

TEXT 系列

SQL
-- 大文本存储
CREATE TABLE articles (
    id INT PRIMARY KEY,
    title VARCHAR(200),
    content TEXT,
    detail MEDIUMTEXT
);

INSERT INTO articles VALUES (1, '标题', '正文内容...', '详细内容...');

VARCHAR 长度选择

SQL
-- VARCHAR(N) 中 N 是字符数,不是字节数
CREATE TABLE products (
    name VARCHAR(100),      -- 名称
    description VARCHAR(500) -- 描述
);

-- VARCHAR(255) 内部用1字节存长度
-- VARCHAR(65535) 内部用2字节存长度

VARCHAR 按实际长度存储,CHAR 按定义长度存储。短且长度固定用 CHAR,其他用 VARCHAR。

要点总结

  • CHAR 是定长,VARCHAR 是变长
  • VARCHAR(N) 的 N 是字符数,非字节数
  • 长文本用 TEXT 系列,短文本用 VARCHAR
  • 固定长度字符串(如手机号)可用 CHAR 效率更高
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 MySQL 浮点数类型
下一篇 → MySQL 日期和时间类型
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码