MySQL 字符串类型
MySQL 字符串类型用于存储文本数据,不同类型有不同的存储方式和适用场景。
类型对照表
| 类型 | 最大长度 | 特点 | 用途 |
|---|---|---|---|
| CHAR | 255字符 | 定长 | 短固定长度 |
| VARCHAR | 65535字节 | 变长 | 可变长度 |
| TINYTEXT | 255字节 | 变长 | 短文本 |
| TEXT | 65535字节 | 变长 | 普通文本 |
| MEDIUMTEXT | 16MB | 变长 | 中等文本 |
| LONGTEXT | 4GB | 变长 | 长文本 |
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 效率更高
📝 发现内容有误?点击此处直接编辑