首页/数据/数据库速查/CREATE TABLE 建表语法与设计要点
本包目录(495 条)
MySQL 基础与连接36 条
SQL 语法52 条
用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条Redis 命令96 条Redis 运维与场景124 条

CREATE TABLE 建表语法与设计要点

定义列、类型、约束、索引与表选项;InnoDB + utf8mb4 是默认组合,主键与聚簇索引设计直接决定后续性能。

数据库速查数据更新于 2026-10-12
用途建表
核心要素列类型 / NOT NULL / DEFAULT / 主键 / 索引 / ENGINE / CHARSET
推荐InnoDB + utf8mb4

完整示例

完整示例
CREATE TABLE orders (
  id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  user_id BIGINT UNSIGNED NOT NULL,
  sku VARCHAR(64) NOT NULL,
  qty INT NOT NULL DEFAULT 1,
  amount DECIMAL(12,2) NOT NULL DEFAULT 0.00,
  status TINYINT NOT NULL DEFAULT 0,
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  KEY idx_user_created (user_id, created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
金额用 DECIMAL 不用 FLOAT/DOUBLE;时间优先 DATETIME(3),注意 TIMESTAMP 的时区转换与 2038 限制。

易错点

  • VARCHAR 长度按需设置:过小会截断/报错,过大浪费内存(临时表按最大长度分配)
  • 主键不要用随机 UUID 字符串,页分裂严重;用有序 ID 方案

数据来源与参考

  • MySQL 8.0 Reference Manual: CREATE TABLE Statement

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌