数据类型
数据类型定义一列可以存什么值以及这些值如何比较、计算和存储,是数据库结构设计的基础约束之一。
#type / concept
#status / growing
#tech / dev / backend
#resource / database
#resource / sql
[!info] related notes
- 所属 MOC: 数据库 MOC
- 前置概念: 列
- 并列概念: 约束, MySQL 与 PostgreSQL 的数据类型差异
- 易混淆概念:
- 关系笔记:
数据类型
一句话定义
数据类型规定一列能存什么值,以及数据库如何存储、校验、比较和计算这些值。
核心机制 / 工作原理
常见类型包括:
- 整数:
INT、BIGINT - 小数:
DECIMAL、NUMERIC - 字符串:
VARCHAR、TEXT - 时间:
DATE、TIMESTAMP - 布尔:
BOOLEAN - 半结构化:
JSON、JSONB
类型会影响:
- 存储空间
- 计算精度
- 比较和排序行为
- 可用索引与查询性能
最小例子 / 最小场景
金额列常写成:
price NUMERIC(10, 2)
而不是直接用浮点数,因为金额通常更关心精度稳定,而不是近似计算。
边界与易混淆点
- 类型不是形式装饰,它会直接改变数据库行为。
- “能存下去”不代表“类型选对了”,例如金额用浮点数就常留下精度隐患。
- 不同数据库的类型体系并不完全一致,尤其在 JSON、数组和时间类型上差异很大。