语法约定

字面值常量

该部分对 IoTDB 中支持的字面值常量进行说明,包括字符串常量、数值型常量、时间戳常量、布尔型常量和空值。

字符串常量

在 IoTDB 中,字符串是由单引号(')或双引号(")字符括起来的字符序列。示例如下:

  1. 'a string'
  2. "another string"

使用场景

  • INSERT 或者 SELECT 中用于表达 TEXT 类型数据的场景。

    1. # insert 示例
    2. insert into root.ln.wf02.wt02(timestamp,hardware) values(1, 'v1')
    3. insert into root.ln.wf02.wt02(timestamp,hardware) values(2, '\\')
    4. +-----------------------------+--------------------------+
    5. | Time|root.ln.wf02.wt02.hardware|
    6. +-----------------------------+--------------------------+
    7. |1970-01-01T08:00:00.001+08:00| v1|
    8. +-----------------------------+--------------------------+
    9. |1970-01-01T08:00:00.002+08:00| \\|
    10. +-----------------------------+--------------------------+
    11. # select 示例
    12. select code from root.sg1.d1 where code in ('string1', 'string2');
  • LOAD / REMOVE / SETTLE 指令中的文件路径。

    1. # load 示例
    2. LOAD 'examplePath'
    3. # remove 示例
    4. REMOVE 'examplePath'
    5. # SETTLE 示例
    6. SETTLE 'examplePath'
  • 用户密码。

    1. # 示例,write_pwd 即为用户密码
    2. CREATE USER ln_write_user 'write_pwd'
  • 触发器和 UDF 中的类全类名,示例如下:

    1. # 触发器示例,AS 后使用字符串表示类全类名
    2. CREATE TRIGGER `alert-listener-sg1d1s1`
    3. AFTER INSERT
    4. ON root.sg1.d1.s1
    5. AS 'org.apache.iotdb.db.engine.trigger.example.AlertListener'
    6. WITH (
    7. 'lo' = '0',
    8. 'hi' = '100.0'
    9. )
    10. # UDF 示例,AS 后使用字符串表示类全类名
    11. CREATE FUNCTION example AS 'org.apache.iotdb.udf.UDTFExample'
  • Select 子句中可以为结果集中的值指定别名,别名可以被定义为字符串或者标识符,示例如下:

    1. select s1 as 'temperature', s2 as 'speed' from root.ln.wf01.wt01;
    2. # 表头如下所示
    3. +-----------------------------+-----------|-----+
    4. | Time|temperature|speed|
    5. +-----------------------------+-----------|-----+
  • 用于表示键值对,键值对的键和值可以被定义成常量(包括字符串)或者标识符,具体请参考键值对章节。

如何在字符串内使用引号

  • 在单引号引起的字符串内,双引号无需特殊处理。同理,在双引号引起的字符串内,单引号无需特殊处理。
  • 在单引号引起的字符串里,可以通过双写单引号来表示一个单引号,即单引号 ‘ 可以表示为 ‘’。
  • 在双引号引起的字符串里,可以通过双写双引号来表示一个双引号,即双引号 “ 可以表示为 “”。

字符串内使用引号的示例如下:

  1. 'string' // string
  2. '"string"' // "string"
  3. '""string""' // ""string""
  4. '''string' // 'string
  5. "string" // string
  6. "'string'" // 'string'
  7. "''string''" // ''string''
  8. """string" // "string

数值型常量

数值型常量包括整型和浮点型。

整型常量是一个数字序列。可以以 +- 开头表示正负。例如:1, -1

带有小数部分或由科学计数法表示的为浮点型常量,例如:.1, 3.14, -2.23, +1.70, 1.2E3, 1.2E-3, -1.2E3, -1.2E-3

在 IoTDB 中,INT32INT64 表示整数类型(计算是准确的),FLOATDOUBLE 表示浮点数类型(计算是近似的)。

在浮点上下文中可以使用整数,它会被解释为等效的浮点数。

时间戳常量

时间戳是一个数据到来的时间点,在 IoTDB 中分为绝对时间戳和相对时间戳。详细信息可参考 数据类型文档字面值常量 - 图1open in new window

特别地,NOW()表示语句开始执行时的服务端系统时间戳。

布尔型常量

布尔值常量 TRUEFALSE 分别等价于 10,它们对大小写不敏感。

空值

NULL值表示没有数据。NULL对大小写不敏感。