首页/数据/NoSQL 速查/CREATE TABLE 建表语法骨架
本包目录(322 条)
MongoDB99 条Elasticsearch89 条
ClickHouse56 条
时序与列式28 条选型与架构50 条

CREATE TABLE 建表语法骨架

建表三要素:列定义、表引擎与排序键;MergeTree 类引擎 ORDER BY 必填,PARTITION BY 可选,SETTINGS 用于调索引粒度等参数。

NoSQL 速查数据更新于 2026-10-12
最小结构CREATE TABLE t (…) ENGINE = MergeTree ORDER BY (…)
可选子句PARTITION BY、PRIMARY KEY、SAMPLE BY、TTL、SETTINGS、COMMENT
列定义名称 类型 [DEFAULT|MATERIALIZED|ALIAS 表达式] [CODEC(...)] [COMMENT ...]

示例

示例
CREATE TABLE IF NOT EXISTS analytics.events
(
    event_time DateTime,
    event_date Date DEFAULT toDate(event_time),
    user_id UInt64,
    event_type LowCardinality(String),
    props String CODEC(ZSTD(3))
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(event_time)
ORDER BY (event_type, user_id, event_time)
SETTINGS index_granularity = 8192;
也可以用 CREATE TABLE t AS other_table 复制结构(ENGINE 同名复制),或 AS SELECT 建表并灌数据。

易错点

  • MergeTree 家族不带任何参数直接写 ENGINE = MergeTree() 时也必须给 ORDER BY,否则建表报错
  • 列顺序与 SELECT * 的结果顺序一致,导入外部数据时列顺序错位会静默写错字段

数据来源与参考

  • ClickHouse Docs: CREATE TABLE
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌