| import{_ as p,c as i,b as l,d as e,e as a,a as o,w as t,r,o as c}from"./app-C1IcKGP3.js";const d={};function y(u,s){const n=r("RouteLink");return c(),i("div",null,[s[5]||(s[5]=l(`<h1 id="syntax-rule" tabindex="-1"><a class="header-anchor" href="#syntax-rule"><span>Syntax Rule</span></a></h1><h2 id="literal-values" tabindex="-1"><a class="header-anchor" href="#literal-values"><span>Literal Values</span></a></h2><p>This section describes how to write literal values in IoTDB. These include strings, numbers, timestamp values, boolean values, and NULL.</p><h3 id="string-literals" tabindex="-1"><a class="header-anchor" href="#string-literals"><span>String Literals</span></a></h3><p>in IoTDB, <strong>A string is a sequence of bytes or characters, enclosed within either single quote (<code>'</code>) or double quote (<code>"</code>) characters.</strong> Examples:</p><div class="language-js line-numbers-mode" data-highlighter="shiki" data-ext="js" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-js"><span class="line"><span style="color:#98C379;">'a string'</span></span> |
| <span class="line"><span style="color:#98C379;">"another string"</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="usage-scenarios" tabindex="-1"><a class="header-anchor" href="#usage-scenarios"><span>Usage Scenarios</span></a></h4><p>Usages of string literals:</p><ul><li><p>Values of <code>TEXT</code> type data in <code>INSERT</code> or <code>SELECT</code> statements</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">insert</span></span> |
| <span class="line"><span style="color:#C678DD;">insert into</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">timestamp</span><span style="color:#ABB2BF;">,hardware) </span><span style="color:#C678DD;">values</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">'v1'</span><span style="color:#ABB2BF;">)</span></span> |
| <span class="line"><span style="color:#C678DD;">insert into</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">timestamp</span><span style="color:#ABB2BF;">,hardware) </span><span style="color:#C678DD;">values</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">2</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">'\\\\'</span><span style="color:#ABB2BF;">)</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#ABB2BF;">+</span><span style="color:#7F848E;font-style:italic;">-----------------------------+--------------------------+</span></span> |
| <span class="line"><span style="color:#ABB2BF;">| </span><span style="color:#C678DD;">Time</span><span style="color:#ABB2BF;">|</span><span style="color:#D19A66;">root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf02</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt02</span><span style="color:#ABB2BF;">.hardware|</span></span> |
| <span class="line"><span style="color:#ABB2BF;">+</span><span style="color:#7F848E;font-style:italic;">-----------------------------+--------------------------+</span></span> |
| <span class="line"><span style="color:#ABB2BF;">|</span><span style="color:#D19A66;">1970</span><span style="color:#ABB2BF;">-</span><span style="color:#D19A66;">01</span><span style="color:#ABB2BF;">-01T08:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">001</span><span style="color:#ABB2BF;">+</span><span style="color:#D19A66;">08</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">| v1|</span></span> |
| <span class="line"><span style="color:#ABB2BF;">+</span><span style="color:#7F848E;font-style:italic;">-----------------------------+--------------------------+</span></span> |
| <span class="line"><span style="color:#ABB2BF;">|</span><span style="color:#D19A66;">1970</span><span style="color:#ABB2BF;">-</span><span style="color:#D19A66;">01</span><span style="color:#ABB2BF;">-01T08:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">002</span><span style="color:#ABB2BF;">+</span><span style="color:#D19A66;">08</span><span style="color:#ABB2BF;">:</span><span style="color:#D19A66;">00</span><span style="color:#ABB2BF;">| \\\\|</span></span> |
| <span class="line"><span style="color:#ABB2BF;">+</span><span style="color:#7F848E;font-style:italic;">-----------------------------+--------------------------+</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">select</span></span> |
| <span class="line"><span style="color:#C678DD;">select</span><span style="color:#ABB2BF;"> code </span><span style="color:#C678DD;">from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">sg1</span><span style="color:#ABB2BF;">.d1 </span><span style="color:#C678DD;">where</span><span style="color:#ABB2BF;"> code </span><span style="color:#C678DD;">in</span><span style="color:#ABB2BF;"> (</span><span style="color:#98C379;">'string1'</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">'string2'</span><span style="color:#ABB2BF;">);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>Used in<code>LOAD</code> / <code>REMOVE</code> / <code>SETTLE</code> instructions to represent file path.</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">load</span></span> |
| <span class="line"><span style="color:#C678DD;">LOAD</span><span style="color:#98C379;"> 'examplePath'</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">remove</span></span> |
| <span class="line"><span style="color:#C678DD;">REMOVE</span><span style="color:#98C379;"> 'examplePath'</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#ABB2BF;"># SETTLE</span></span> |
| <span class="line"><span style="color:#ABB2BF;">SETTLE </span><span style="color:#98C379;">'examplePath'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>Password fields in user management statements</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#ABB2BF;"># write_pwd </span><span style="color:#C678DD;">is</span><span style="color:#ABB2BF;"> the </span><span style="color:#C678DD;">password</span></span> |
| <span class="line"><span style="color:#C678DD;">CREATE</span><span style="color:#C678DD;"> USER</span><span style="color:#61AFEF;"> ln_write_user</span><span style="color:#98C379;"> 'write_pwd'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>Full Java class names in UDF and trigger management statements</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#ABB2BF;"># Trigger example. Full java class names </span><span style="color:#C678DD;">after</span><span style="color:#98C379;"> 'AS'</span><span style="color:#ABB2BF;"> should be string literals.</span></span> |
| <span class="line"><span style="color:#C678DD;">CREATE</span><span style="color:#ABB2BF;"> TRIGGER </span><span style="color:#98C379;">\`alert-listener-sg1d1s1\`</span></span> |
| <span class="line"><span style="color:#C678DD;">AFTER</span><span style="color:#C678DD;"> INSERT</span></span> |
| <span class="line"><span style="color:#C678DD;">ON</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">sg1</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">d1</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">s1</span></span> |
| <span class="line"><span style="color:#C678DD;">AS</span><span style="color:#98C379;"> 'org.apache.iotdb.db.engine.trigger.example.AlertListener'</span></span> |
| <span class="line"><span style="color:#C678DD;">WITH</span><span style="color:#ABB2BF;"> (</span></span> |
| <span class="line"><span style="color:#98C379;"> 'lo'</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> '0'</span><span style="color:#ABB2BF;">, </span></span> |
| <span class="line"><span style="color:#98C379;"> 'hi'</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> '100.0'</span></span> |
| <span class="line"><span style="color:#ABB2BF;">)</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#ABB2BF;"># UDF example. Full java class names </span><span style="color:#C678DD;">after</span><span style="color:#98C379;"> 'AS'</span><span style="color:#ABB2BF;"> should be string literals.</span></span> |
| <span class="line"><span style="color:#C678DD;">CREATE</span><span style="color:#C678DD;"> FUNCTION</span><span style="color:#61AFEF;"> example</span><span style="color:#C678DD;"> AS</span><span style="color:#98C379;"> 'org.apache.iotdb.udf.UDTFExample'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p><code>AS</code> function provided by IoTDB can assign an alias to time series selected in query. Alias can be constant(including string) or identifier.</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#C678DD;">select</span><span style="color:#ABB2BF;"> s1 </span><span style="color:#C678DD;">as</span><span style="color:#98C379;"> 'temperature'</span><span style="color:#ABB2BF;">, s2 </span><span style="color:#C678DD;">as</span><span style="color:#98C379;"> 'speed'</span><span style="color:#C678DD;"> from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf01</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt01</span><span style="color:#ABB2BF;">;</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#ABB2BF;"># Header of dataset</span></span> |
| <span class="line"><span style="color:#ABB2BF;">+</span><span style="color:#7F848E;font-style:italic;">-----------------------------+-----------|-----+</span></span> |
| <span class="line"><span style="color:#ABB2BF;">| </span><span style="color:#C678DD;">Time</span><span style="color:#ABB2BF;">|temperature|speed|</span></span> |
| <span class="line"><span style="color:#ABB2BF;">+</span><span style="color:#7F848E;font-style:italic;">-----------------------------+-----------|-----+</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>The key/value of an attribute can be String Literal and identifier, more details can be found at <strong>key-value pair</strong> part.</p></li></ul><h4 id="how-to-use-quotation-marks-in-string-literals" tabindex="-1"><a class="header-anchor" href="#how-to-use-quotation-marks-in-string-literals"><span>How to use quotation marks in String Literals</span></a></h4><p>There are several ways to include quote characters within a string:</p><ul><li><code>'</code> inside a string quoted with <code>"</code> needs no special treatment and need not be doubled or escaped. In the same way, <code>"</code> inside a string quoted with <code>'</code> needs no special treatment.</li><li>A <code>'</code> inside a string quoted with <code>'</code> may be written as <code>''</code>.</li><li>A <code>"</code> inside a string quoted with <code>"</code> may be written as <code>""</code>.</li></ul><p>The following examples demonstrate how quoting and escaping work:</p><div class="language-js line-numbers-mode" data-highlighter="shiki" data-ext="js" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-js"><span class="line"><span style="color:#98C379;">'string'</span><span style="color:#7F848E;font-style:italic;"> // string</span></span> |
| <span class="line"><span style="color:#98C379;">'"string"'</span><span style="color:#7F848E;font-style:italic;"> // "string"</span></span> |
| <span class="line"><span style="color:#98C379;">'""string""'</span><span style="color:#7F848E;font-style:italic;"> // ""string""</span></span> |
| <span class="line"><span style="color:#98C379;">'''string'</span><span style="color:#7F848E;font-style:italic;"> // 'string</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#98C379;">"string"</span><span style="color:#7F848E;font-style:italic;"> // string</span></span> |
| <span class="line"><span style="color:#98C379;">"'string'"</span><span style="color:#7F848E;font-style:italic;"> // 'string'</span></span> |
| <span class="line"><span style="color:#98C379;">"''string''"</span><span style="color:#7F848E;font-style:italic;"> // ''string''</span></span> |
| <span class="line"><span style="color:#98C379;">"""string"</span><span style="color:#7F848E;font-style:italic;"> // "string</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="numeric-literals" tabindex="-1"><a class="header-anchor" href="#numeric-literals"><span>Numeric Literals</span></a></h3><p>Number literals include integer (exact-value) literals and floating-point (approximate-value) literals.</p><p>Integers are represented as a sequence of digits. Numbers may be preceded by <code>-</code> or <code>+</code> to indicate a negative or positive value, respectively. Examples: <code>1</code>, <code>-1</code>.</p><p>Numbers with fractional part or represented in scientific notation with a mantissa and exponent are approximate-value numbers. Examples: <code>.1</code>, <code>3.14</code>, <code>-2.23</code>, <code>+1.70</code>, <code>1.2E3</code>, <code>1.2E-3</code>, <code>-1.2E3</code>, <code>-1.2E-3</code>.</p><p>The <code>INT32</code> and <code>INT64</code> data types are integer types and calculations are exact.</p><p>The <code>FLOAT</code> and <code>DOUBLE</code> data types are floating-point types and calculations are approximate.</p><p>An integer may be used in floating-point context; it is interpreted as the equivalent floating-point number.</p><h3 id="timestamp-literals" tabindex="-1"><a class="header-anchor" href="#timestamp-literals"><span>Timestamp Literals</span></a></h3>`,22)),e("p",null,[s[1]||(s[1]=a("The timestamp is the time point at which data is produced. It includes absolute timestamps and relative timestamps in IoTDB. For information about timestamp support in IoTDB, see ",-1)),o(n,{to:"/UserGuide/V1.2.x/Basic-Concept/Data-Type.html"},{default:t(()=>[...s[0]||(s[0]=[a("Data Type Doc",-1)])]),_:1}),s[2]||(s[2]=a(".",-1))]),s[6]||(s[6]=l(`<p>Specially, <code>NOW()</code> represents a constant timestamp that indicates the system time at which the statement began to execute.</p><h3 id="boolean-literals" tabindex="-1"><a class="header-anchor" href="#boolean-literals"><span>Boolean Literals</span></a></h3><p>The constants <code>TRUE</code> and <code>FALSE</code> evaluate to 1 and 0, respectively. The constant names can be written in any lettercase.</p><h3 id="null-values" tabindex="-1"><a class="header-anchor" href="#null-values"><span>NULL Values</span></a></h3><p>The <code>NULL</code> value means “no data.” <code>NULL</code> can be written in any lettercase.</p><h2 id="identifier" tabindex="-1"><a class="header-anchor" href="#identifier"><span>Identifier</span></a></h2><h3 id="usage-scenarios-1" tabindex="-1"><a class="header-anchor" href="#usage-scenarios-1"><span>Usage scenarios</span></a></h3><p>Certain objects within IoTDB, including <code>TRIGGER</code>, <code>FUNCTION</code>(UDF), <code>CONTINUOUS QUERY</code>, <code>SCHEMA TEMPLATE</code>, <code>USER</code>, <code>ROLE</code>,<code>Pipe</code>,<code>PipeSink</code>,<code>alias</code> and other object names are known as identifiers.</p><h3 id="constraints" tabindex="-1"><a class="header-anchor" href="#constraints"><span>Constraints</span></a></h3><p>Below are basic constraints of identifiers, specific identifiers may have other constraints, for example, <code>user</code> should consists of more than 4 characters.</p><ul><li>Permitted characters in unquoted identifiers: <ul><li>[0-9 a-z A-Z _ ] (letters, digits and underscore)</li><li>['\\u2E80'..'\\u9FFF'] (UNICODE Chinese characters)</li></ul></li><li>Identifiers may begin with a digit, unquoted identifiers can not be a real number.</li><li>Identifiers are case sensitive.</li><li>Key words can be used as an identifier.</li></ul><p><strong>You need to quote the identifier with back quote(\`) in the following cases:</strong></p><ul><li>Identifier contains special characters.</li><li>Identifier that is a real number.</li></ul><h3 id="how-to-use-quotations-marks-in-quoted-identifiers" tabindex="-1"><a class="header-anchor" href="#how-to-use-quotations-marks-in-quoted-identifiers"><span>How to use quotations marks in quoted identifiers</span></a></h3><p><code>'</code> and <code>"</code> can be used directly in quoted identifiers.</p><p>\` may be written as \`\` in quoted identifiers. See the example below:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">create</span><span style="color:#ABB2BF;"> template t1</span><span style="color:#98C379;">'t"t</span></span> |
| <span class="line"><span style="color:#98C379;">create schema template \`t1'</span><span style="color:#ABB2BF;">t</span><span style="color:#98C379;">"t\` </span></span> |
| <span class="line"><span style="color:#98C379;">(temperature FLOAT encoding=RLE, status BOOLEAN encoding=PLAIN compression=SNAPPY)</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#98C379;"># create template t1\`t</span></span> |
| <span class="line"><span style="color:#98C379;">create schema template \`t1\`\`t\` </span></span> |
| <span class="line"><span style="color:#98C379;">(temperature FLOAT encoding=RLE, status BOOLEAN encoding=PLAIN compression=SNAPPY)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="examples" tabindex="-1"><a class="header-anchor" href="#examples"><span>Examples</span></a></h3><p>Examples of case in which quoted identifier is used :</p><ul><li><p>Trigger name should be quoted in cases described above :</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">create</span><span style="color:#ABB2BF;"> trigger named alert.</span><span style="color:#98C379;">\`listener-sg1d1s1</span></span> |
| <span class="line"><span style="color:#98C379;">CREATE TRIGGER \`</span><span style="color:#ABB2BF;">alert.</span><span style="color:#98C379;">\`\`</span><span style="color:#ABB2BF;">listener-sg1d1s1</span><span style="color:#98C379;">\`</span></span> |
| <span class="line"><span style="color:#98C379;">AFTER INSERT</span></span> |
| <span class="line"><span style="color:#98C379;">ON root.sg1.d1.s1</span></span> |
| <span class="line"><span style="color:#98C379;">AS 'org.apache.iotdb.db.storageengine.trigger.example.AlertListener'</span></span> |
| <span class="line"><span style="color:#98C379;">WITH (</span></span> |
| <span class="line"><span style="color:#98C379;"> 'lo' = '0', </span></span> |
| <span class="line"><span style="color:#98C379;"> 'hi' = '100.0'</span></span> |
| <span class="line"><span style="color:#98C379;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>UDF name should be quoted in cases described above :</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">create</span><span style="color:#ABB2BF;"> a funciton named </span><span style="color:#D19A66;">111</span><span style="color:#ABB2BF;">, </span><span style="color:#D19A66;">111</span><span style="color:#C678DD;"> is</span><span style="color:#ABB2BF;"> a </span><span style="color:#C678DD;">real</span><span style="color:#C678DD;"> number</span><span style="color:#ABB2BF;">.</span></span> |
| <span class="line"><span style="color:#C678DD;">CREATE</span><span style="color:#C678DD;"> FUNCTION</span><span style="color:#ABB2BF;"> \`</span><span style="color:#61AFEF;">111</span><span style="color:#ABB2BF;">\` </span><span style="color:#C678DD;">AS</span><span style="color:#98C379;"> 'org.apache.iotdb.udf.UDTFExample'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>Template name should be quoted in cases described above :</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">create</span><span style="color:#ABB2BF;"> a template named </span><span style="color:#D19A66;">111</span><span style="color:#ABB2BF;">, </span><span style="color:#D19A66;">111</span><span style="color:#C678DD;"> is</span><span style="color:#ABB2BF;"> a </span><span style="color:#C678DD;">real</span><span style="color:#C678DD;"> number</span><span style="color:#ABB2BF;">.</span></span> |
| <span class="line"><span style="color:#C678DD;">create</span><span style="color:#C678DD;"> schema</span><span style="color:#61AFEF;"> template</span><span style="color:#98C379;"> \`111\`</span><span style="color:#ABB2BF;"> </span></span> |
| <span class="line"><span style="color:#ABB2BF;">(temperature </span><span style="color:#C678DD;">FLOAT</span><span style="color:#C678DD;"> encoding</span><span style="color:#56B6C2;">=</span><span style="color:#ABB2BF;">RLE, </span><span style="color:#C678DD;">status</span><span style="color:#C678DD;"> BOOLEAN</span><span style="color:#C678DD;"> encoding</span><span style="color:#56B6C2;">=</span><span style="color:#ABB2BF;">PLAIN </span><span style="color:#C678DD;">compression</span><span style="color:#56B6C2;">=</span><span style="color:#ABB2BF;">SNAPPY)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>User and Role name should be quoted in cases described above, blank space is not allow in User and Role name whether quoted or not :</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">create</span><span style="color:#ABB2BF;"> user special</span><span style="color:#98C379;">\`user.</span></span> |
| <span class="line"><span style="color:#98C379;">CREATE USER \`</span><span style="color:#ABB2BF;">special</span><span style="color:#98C379;">\`\`</span><span style="color:#ABB2BF;">user.</span><span style="color:#98C379;">\` 'write_pwd'</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#98C379;"># create role 111</span></span> |
| <span class="line"><span style="color:#98C379;">CREATE ROLE \`</span><span style="color:#D19A66;">111</span><span style="color:#98C379;">\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>Continuous query name should be quoted in cases described above :</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">create</span><span style="color:#ABB2BF;"> continuous query </span><span style="color:#D19A66;">test</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">cq</span></span> |
| <span class="line"><span style="color:#C678DD;">CREATE</span><span style="color:#ABB2BF;"> CONTINUOUS QUERY </span><span style="color:#98C379;">\`test.cq\`</span><span style="color:#ABB2BF;"> </span></span> |
| <span class="line"><span style="color:#C678DD;">BEGIN</span><span style="color:#ABB2BF;"> </span></span> |
| <span class="line"><span style="color:#C678DD;"> SELECT</span><span style="color:#ABB2BF;"> max_value(temperature) </span></span> |
| <span class="line"><span style="color:#C678DD;"> INTO</span><span style="color:#ABB2BF;"> temperature_max </span></span> |
| <span class="line"><span style="color:#C678DD;"> FROM</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.*.* </span></span> |
| <span class="line"><span style="color:#C678DD;"> GROUP BY</span><span style="color:#C678DD;"> time</span><span style="color:#ABB2BF;">(10s) </span></span> |
| <span class="line"><span style="color:#C678DD;">END</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>Pipe、PipeSink should be quoted in cases described above :</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">create</span><span style="color:#ABB2BF;"> PipeSink test.*</span><span style="color:#D19A66;">1</span></span> |
| <span class="line"><span style="color:#C678DD;">CREATE</span><span style="color:#ABB2BF;"> PIPESINK </span><span style="color:#98C379;">\`test.*1\`</span><span style="color:#C678DD;"> AS</span><span style="color:#ABB2BF;"> IoTDB (</span><span style="color:#98C379;">'ip'</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> '输入你的IP'</span><span style="color:#ABB2BF;">)</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">create</span><span style="color:#ABB2BF;"> Pipe test.*</span><span style="color:#D19A66;">2</span></span> |
| <span class="line"><span style="color:#C678DD;">CREATE</span><span style="color:#ABB2BF;"> PIPE </span><span style="color:#98C379;">\`test.*2\`</span><span style="color:#C678DD;"> TO</span><span style="color:#98C379;"> \`test.*1\`</span><span style="color:#C678DD;"> FROM</span><span style="color:#ABB2BF;"> </span></span> |
| <span class="line"><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">select</span><span style="color:#ABB2BF;"> ** </span><span style="color:#C678DD;">from</span><span style="color:#C678DD;"> root</span><span style="color:#C678DD;"> WHERE</span><span style="color:#C678DD;"> time</span><span style="color:#56B6C2;">>=</span><span style="color:#ABB2BF;">yyyy-mm-dd HH:MM:SS) </span><span style="color:#C678DD;">WITH</span><span style="color:#98C379;"> 'SyncDelOp'</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> 'true'</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p><code>AS</code> function provided by IoTDB can assign an alias to time series selected in query. Alias can be constant(including string) or identifier.</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-sql"><span class="line"><span style="color:#C678DD;">select</span><span style="color:#ABB2BF;"> s1 </span><span style="color:#C678DD;">as</span><span style="color:#ABB2BF;"> temperature, s2 </span><span style="color:#C678DD;">as</span><span style="color:#ABB2BF;"> speed </span><span style="color:#C678DD;">from</span><span style="color:#D19A66;"> root</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">ln</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wf01</span><span style="color:#ABB2BF;">.</span><span style="color:#D19A66;">wt01</span><span style="color:#ABB2BF;">;</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#ABB2BF;"># Header of result dataset</span></span> |
| <span class="line"><span style="color:#ABB2BF;">+</span><span style="color:#7F848E;font-style:italic;">-----------------------------+-----------|-----+</span></span> |
| <span class="line"><span style="color:#ABB2BF;">| </span><span style="color:#C678DD;">Time</span><span style="color:#ABB2BF;">|temperature|speed|</span></span> |
| <span class="line"><span style="color:#ABB2BF;">+</span><span style="color:#7F848E;font-style:italic;">-----------------------------+-----------|-----+</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>The key/value of an attribute can be String Literal and identifier, more details can be found at <strong>key-value pair</strong> part.</p></li></ul><h2 id="keywords-words" tabindex="-1"><a class="header-anchor" href="#keywords-words"><span>KeyWords Words</span></a></h2><p>Keywords are words that have significance in SQL. Keywords can be used as an identifier. Certain keywords, such as TIME/TIMESTAMP and ROOT, are reserved and cannot use as identifiers.</p>`,22)),e("p",null,[o(n,{to:"/UserGuide/V1.2.x/Reference/Keywords.html"},{default:t(()=>[...s[3]||(s[3]=[a("Keywords",-1)])]),_:1}),s[4]||(s[4]=a(" shows the keywords in IoTDB.",-1))]),s[7]||(s[7]=e("h2",{id:"detailed-definitions-of-lexical-and-grammar",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#detailed-definitions-of-lexical-and-grammar"},[e("span",null,"Detailed Definitions of Lexical and Grammar")])],-1)),s[8]||(s[8]=e("p",null,"Please read the lexical and grammar description files in our code repository:",-1)),s[9]||(s[9]=e("p",null,[a("Lexical file: "),e("code",null,"antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlLexer.g4")],-1)),s[10]||(s[10]=e("p",null,[a("Grammer file: "),e("code",null,"antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4")],-1))])}const m=p(d,[["render",y]]),v=JSON.parse('{"path":"/UserGuide/V1.2.x/User-Manual/Syntax-Rule.html","title":"Syntax Rule","lang":"en-US","frontmatter":{"description":"Syntax Rule Literal Values This section describes how to write literal values in IoTDB. These include strings, numbers, timestamp values, boolean values, and NULL. String Litera...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Syntax Rule\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-01-12T10:25:39.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://iotdb.apache.org/UserGuide/V1.2.x/User-Manual/Syntax-Rule.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:title","content":"Syntax Rule"}],["meta",{"property":"og:description","content":"Syntax Rule Literal Values This section describes how to write literal values in IoTDB. These include strings, numbers, timestamp values, boolean values, and NULL. String Litera..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-12T10:25:39.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-12T10:25:39.000Z"}],["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://iotdb.apache.org/zh/UserGuide/V1.2.x/User-Manual/Syntax-Rule.html"}]]},"git":{"createdTime":1768213539000,"updatedTime":1768213539000,"contributors":[{"name":"CritasWang","username":"CritasWang","email":"critas@outlook.com","commits":1,"url":"https://github.com/CritasWang"}]},"readingTime":{"minutes":4.1,"words":1231},"filePathRelative":"UserGuide/V1.2.x/User-Manual/Syntax-Rule.md","autoDesc":true}');export{m as comp,v as data}; |