ANSI Compatibility
GreptimeDB 支持的 SQL 是 ANSI SQL 的子集,并且拥有一些特有的扩展。一些主要的不兼容和扩展描述如下:
- 建表
- 插入新数据: 与 ANSI SQL 语法一致,但是强制要求提供
TIME INDEX
列值(或默认值)。 - 更新:不支持
UPDATE
语法,但是在INSERT
的时候,如果主键和TIME INDEX
对应的列值一样,那么后续插入的行将覆盖以前写入的行,从而变相实现更新。 - 查询:查询语法兼容 ANSI SQL,存在部分功能差异和缺失
- 从 v0.9.0 开始支持视图。
- TQL 语法扩展:TQL 子命令支持在 SQL 中执行 PromQL,详细请参考 TQL 一节。
- Range Query 支持按照指定 窗口来查询和聚合时序数据。
- 删除数据:语法与 ANSI SQL 基本一致。
- 他项:
- 标识符,如表名,列名等,约束与 ANSI SQL 类似,大小写敏感,遇到特殊字符或者大写需要用双引号括起来。
- GreptimeDB 针对不同方言做了优化,比如用 MySQL 客户端或者 PostgreSQL 客户端连接到数据库时, 允许使用特定 SQL 方言的标识符规则,比如在 MySQL 中可以用反引号
`
,而在 PostgreSQL 中还是标准的双引号"
。