库与表
常见数据类型
- 数值:
TINYINT/INT/BIGINT,定点数DECIMAL(p,s);避免货币使用FLOAT/DOUBLE - 字符串:
CHAR(n)固定长度、VARCHAR(n)变长;文本TEXT系列 - 日期时间:
DATE/TIME/DATETIME/TIMESTAMP;TIMESTAMP有时区相关行为 - 布尔:
BOOLEAN为TINYINT(1)的别名 - JSON:MySQL 5.7+ 原生
JSON类型,支持->、JSON_EXTRACT
选择排序规则(collation)会影响比较与排序,中文常用
utf8mb4_zh_0900_as_cs(区分大小写/声调),默认 utf8mb4_0900_ai_ci 为不区分大小写。约束与默认值
CHECK约束在 8.0+ 才真正执行- ENUM 适合枚举值较少、稳定的状态字段
- 可以使用
DEFAULT配合ON UPDATE自动维护时间戳
插入与查询
常用表达式与函数
- 数值处理:
ROUND,CEIL,FLOOR - 字符串:
CONCAT,SUBSTRING,TRIM - 日期时间:
DATE_ADD,DATEDIFF - JSON:
JSON_EXTRACT,JSON_SET,->>(直接文本)
更新与删除
聚合与分组
HAVING 用于聚合后的过滤,WITH ROLLUP 可以得到小计/合计行。
批量导入与导出
- 需要客户端启用
--local-infile=1 - 可用于从 CSV 快速填充测试数据
SELECT ... INTO OUTFILE 或 mysqldump 实现,详见“备份与恢复”。