执行基本 SQL 查询
InfluxDB SQL 实现由 Apache Arrow DataFusion 查询引擎驱动,该引擎提供类似于其他关系查询语言的 SQL 语法。
从 InfluxDB 3 Core 查询数据的基本 SQL 查询最常见地包括以下子句
* 必需- *
SELECT
:指定要从表中输出的字段、标签和计算,或使用通配符别名 (*
) 从表中选择所有字段和标签。 - *
FROM
:指定要从中查询数据的表。 WHERE
:仅返回满足指定条件的行——例如,时间在时间范围内,标签具有特定值,或字段值高于或低于指定阈值。
结果集
如果至少有一行满足查询,InfluxDB 3 Core 将在查询结果集中返回行数据。SQL 查询结果集包括查询的 SELECT
语句中列出的列。
基本查询示例
在时间边界内查询数据
- 使用
SELECT
子句指定要返回的标签和字段。要返回所有标签和字段,请使用通配符别名 (*
)。 - 在
FROM
子句中指定要查询的表。 - 在
WHERE
子句中指定时间边界。包括将time
列的值与时间戳进行比较的基于时间的谓词。使用AND
逻辑运算符将多个谓词链接在一起。
查询时间边界可以是相对的或绝对的。
在没有时间边界的情况下查询数据
要在没有时间边界的情况下查询数据,请不要在 WHERE
子句中包含任何基于时间的谓词。
没有时间限制地查询数据可能会返回意想不到的大量数据。查询可能需要很长时间才能完成,并且结果可能会被截断。
SELECT * FROM home
查询特定字段和标签
要查询特定字段,请将其包含在 SELECT
子句中。如果查询多个字段或标签,请用逗号分隔每个字段或标签。如果字段或标签键包含特殊字符或空格或区分大小写,请将键括在双引号中。
SELECT time, room, temp, hum FROM home
根据标签值查询字段
- 在
SELECT
子句中包含你要查询的字段以及你要在其基础上设置条件的标签。 - 在
WHERE
子句中包含将标签标识符与字符串字面量进行比较的谓词。使用 逻辑运算符 将多个谓词链接在一起并应用多个条件。
SELECT * FROM home WHERE room = 'Kitchen'
根据字段值查询点
- 在
SELECT
子句中,包含你要查询的字段。 - 在
WHERE
子句中,包含将字段标识符与值或表达式进行比较的谓词。使用 逻辑运算符 (AND
,OR
) 将多个谓词链接在一起并应用多个条件。
SELECT co, time FROM home WHERE co >= 10 OR co <= -10
为查询的字段和标签创建别名
要为你查询的字段和标签创建别名或重命名,请在 SELECT
子句中的字段或标签标识符后传递字符串字面量。你可以使用 AS
子句来定义别名,但这不是必需的。以下查询在功能上是相同的
SELECT temp 'temperature', hum 'humidity' FROM home
SELECT temp AS 'temperature', hum AS 'humidity' FROM home
此页面是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB 3 Core 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度合同或支持合同的客户可以联系 InfluxData 支持。