SQL String Data 字符串数据
SQL 里表示文本的数据类型。
常见类型
| 类型 | 特征 | 用途 |
|---|---|---|
CHAR(N) | 定长,不足补空格 | 长度固定的字符串(国家代码 “AU”) |
VARCHAR(N) | 变长,最长 N 字符 | 大部分字段(姓名、email) |
TEXT | 变长,可以很长 | 长文本(文章、日志) |
BLOB | 二进制 | 图片、附件(不推荐) |
关键
- 长度限制要合理 —— 太短会截断,太长浪费索引空间
- TEXT 不能完全建索引 —— 长文本搜索用全文索引(FULLTEXT)或单独的搜索引擎(Elasticsearch)
- 字符集 —— UTF-8 / utf8mb4(支持 emoji 和中文)是默认推荐
安全注意
- 用户输入存进 string 字段前,不要预处理转义 —— 那是 query 时 parameterized 的责任
- 否则数据存进去是脏的,查出来也是脏的