TDengine SQL
本文档说明 TDengine SQL 支持的语法规则、主要查询功能、支持的 SQL 查询函数,以及常用技巧等内容。阅读本文档需要读者具有基本的 SQL 语言的基础。TDengine 3.0 版本相比 2.x 版本做了大量改进和优化,特别是查询引擎进行了彻底的重构,因此 SQL 语法相比 2.x 版本有很多变更。详细的变更内容请见 3.0 版本语法变更 章节
TDengine SQL 是用户 对 TDengine 进行数据写入和查询的主要工具。TDengine SQL 提供标准的 SQL 语法,并针对时序数据和业务的特点优化和新增了许多语法和功能。TDengine SQL 语句的最大长度为 1M。TDengine SQL 不支持关键字的缩写,例如 DELETE 不能缩写为 DEL。
本章节 SQL 语法遵循如下约定:
- 用大写字母表示关键字,但 SQL 本身并不区分关键字和标识符的大小写
- 用小写字母表示需要用户输入的内容
- [ ] 表示内容为可选项,但不能输入 [] 本身
- | 表示多选一,选择其中一个即可,但不能输入 | 本身
- … 表示前面的项可重复多个
为更好地说明 SQL 语法的规则及其特点,本文假设存在一个数据集。以智能电表(meters)为例,假设每个智能电表采集电流、电压、相位三个量。其建模如下:
taos> DESCRIBE meters;
Field | Type | Length | Note |
=================================================================================
ts | TIMESTAMP | 8 | |
current | FLOAT | 4 | |
voltage | INT | 4 | |
phase | FLOAT | 4 | |
location | BINARY | 64 | TAG |
groupid | INT | 4 | TAG |
数据集包含 4 个智能电表的数据,按照 TDengine 的建模规则,对应 4 个子表,其名称分别是 d1001, d1002, d1003, d1004。
📄️ 数据类型
TDengine 支持的数据类型: 时间戳、浮点型、JSON 类型等
📄️ 数据库
创建、删除数据库,查看、修改数据库参数
📄️ 表
对表的各种管理操作
📄️ 超级表
对超级表的各种管理操作
📄️ 数据写入
写入数据的详细语法
📄️ 数据查询
查询数据的详细语法
📄️ 标签索引
使用标签索引提升查询性能
📄️ 删除数据
删除指定表或超级表中的数据记录
📄️ 函数
TDengine 支持的函数列表
📄️ 特色查询
TDengine 提供的时序数据特有的查询功能
📄️ 数据订阅
TDengine 消息队列提供的数据订阅功能
📄️ 流式计算
流式计算的相关 SQL 的详细语法
📄️ 运算符
TDengine 支持的所有运算符
📄️ JSON 类型
对 JSON 类型如何使用的详细说明
📄️ 转义字符
TDengine 中使用转义字符的详细规则
📄️ 命名与边界
合法字符集和命名中的限制规则
📄️ 保留关键字
TDengine 保留关键字的详细列表