TAOS SQL

本文档说明TAOS SQL支持的语法规则、主要查询功能、支持的SQL查询函数,以及常用技巧等内容。阅读本文档需要读者具有基本的SQL语言的基础。

TAOS SQL是用户对TDengine进行数据写入和查询的主要工具。TAOS SQL为了便于用户快速上手,在一定程度上提供类似于标准SQL类似的风格和模式。严格意义上,TAOS SQL并不是也不试图提供SQL标准的语法。此外,由于TDengine针对的时序性结构化数据不提供修改和更新功能,因此在TAO SQL中不提供数据更新和数据删除的相关功能。

本章节SQL语法遵循如下约定:

  • < > 里的内容是用户需要输入的,但不要输入<>本身
  • []表示内容为可选项,但不能输入[]本身
  • | 表示多选一,选择其中一个即可,但不能输入|本身
  • … 表示前面的项可重复多个

为更好地说明SQL语法的规则及其特点,本文假设存在一个数据集。该数据集是针对两种类型的设备温度(湿度)传感器、气压(海拔)传感器建立的数据模型。 针对温度传感器,具有超级表(super table) temp_stable。其数据模型如下:

  1. taos> describe temp_stable;
  2. Field | Type | Length | Note |
  3. =======================================================================================================
  4. ts |TIMESTAMP | 8 | |
  5. temperature |FLOAT | 4 | |
  6. humidity |TINYINT | 1 | |
  7. status |TINYINT | 1 | |
  8. deviceid |BIGINT | 12 |tag |
  9. location |BINARY | 20 |tag |

数据集包含2个温度传感器的数据,按照TDengine的建模规则,对应2个子表,其名称分别是 temp_tb_1,temp_tb_2 。 针对压力(海拔)传感器,具有超级表(super table) pressure_stable。其数据模型如下: 数据集包含2个压力传感器数据,对应2个子表,分别是 press_tb_1,press_tb_2。

  1. taos> describe pressure_stable;
  2. Field | Type | Length | Note |
  3. =======================================================================================================
  4. ts |TIMESTAMP | 8 | |
  5. height |FLOAT | 4 | |
  6. pressure |FLOAT | 4 | |
  7. devstat |TINYINT | 1 | |
  8. id |BIGINT | 8 |tag |
  9. city |NCHAR | 20 |tag |
  10. longitude |FLOAT | 4 |tag |
  11. latitude |FLOAT | 4 |tag |