字段类型
SQLAlchemy 的字段类型对应 Python 类型和数据库类型,选对类型是建表的第一步。
一、常用类型速查表
二、逐个讲解
1. String(N) — 字符串
- 必须指定长度
N,数据库会限制最大长度 - 如果内容不确定长度,用
Text代替
2. Text — 长文本
- 适合文章内容、评论、日志等长文本
- MySQL 对应
TEXT,PostgreSQL 对应TEXT
3. Integer / BigInteger / SmallInteger — 整数
Integer范围:-2147483648 ~ 2147483647BigInteger范围:约 ±9.2 × 10¹⁸SmallInteger范围:-32768 ~ 32767
4. Float / Numeric — 小数
Float:计算快但有精度误差,适合分数、概率等Numeric:精确无误差,适合金额、价格等必须精确的场景
5. Boolean — 布尔
- Python 端用
True/False - MySQL 底层存为
TINYINT(1),SQLite 存为INTEGER
6. Date / DateTime / Time — 日期时间
Date:Python 的date对象DateTime:Python 的datetime对象(最常用)Time:Python 的time对象
7. JSON — JSON 数据
- MySQL 对应
JSON类型,PostgreSQL 对应JSONB(更快) - SQLite 底层存为
TEXT,靠 SQLAlchemy 做序列化/反序列化 - 适合存配置、标签、扩展字段等结构不固定的数据
8. Enum — 枚举
- 限定字段只能存预定义的值
- MySQL 底层用真正的
ENUM类型,PostgreSQL/SQLite 用VARCHAR+ CHECK 约束
9. LargeBinary — 二进制
- 一般不建议直接把文件存数据库,存文件路径更常见
- 适合存加密密钥、序列化对象等小型二进制数据

