blob: d4b439d2bf76e4c9e78aaadd0f1826e42d37d15a [file] [log] [blame]
import{_ as l,c as o,b as a,d as t,e,a as i,f as r,r as p,o as c}from"./app-C8175JBb.js";const d={};function u(y,s){const n=p("RouteLink");return c(),o("div",null,[s[3]||(s[3]=a(`<h1 id="identifiers" tabindex="-1"><a class="header-anchor" href="#identifiers"><span>Identifiers</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>&#39;</code>) or double quote (<code>&quot;</code>) characters.</strong> Examples:</p><div class="language-js line-numbers-mode" data-highlighter="shiki" data-ext="js" data-title="js" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#98C379;">&#39;a string&#39;</span></span>
<span class="line"><span style="color:#98C379;">&quot;another string&quot;</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" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><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;">&#39;v1&#39;</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;">&#39;\\\\&#39;</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;">&#39;string1&#39;</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">&#39;string2&#39;</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" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><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;"> &#39;examplePath&#39;</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;"> &#39;examplePath&#39;</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;">&#39;examplePath&#39;</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" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><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;"> &#39;write_pwd&#39;</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" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#ABB2BF;"># Trigger example. Full java class names </span><span style="color:#C678DD;">after</span><span style="color:#98C379;"> &#39;AS&#39;</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;"> &#39;org.apache.iotdb.db.engine.trigger.example.AlertListener&#39;</span></span>
<span class="line"><span style="color:#C678DD;">WITH</span><span style="color:#ABB2BF;"> (</span></span>
<span class="line"><span style="color:#98C379;"> &#39;lo&#39;</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> &#39;0&#39;</span><span style="color:#ABB2BF;">, </span></span>
<span class="line"><span style="color:#98C379;"> &#39;hi&#39;</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> &#39;100.0&#39;</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;"> &#39;AS&#39;</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;"> &#39;org.apache.iotdb.udf.UDTFExample&#39;</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" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><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;"> &#39;temperature&#39;</span><span style="color:#ABB2BF;">, s2 </span><span style="color:#C678DD;">as</span><span style="color:#98C379;"> &#39;speed&#39;</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>&#39;</code> inside a string quoted with <code>&quot;</code> needs no special treatment and need not be doubled or escaped. In the same way, <code>&quot;</code> inside a string quoted with <code>&#39;</code> needs no special treatment.</li><li>A <code>&#39;</code> inside a string quoted with <code>&#39;</code> may be written as <code>&#39;&#39;</code>.</li><li>A <code>&quot;</code> inside a string quoted with <code>&quot;</code> may be written as <code>&quot;&quot;</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" data-title="js" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#98C379;">&#39;string&#39;</span><span style="color:#7F848E;font-style:italic;"> // string</span></span>
<span class="line"><span style="color:#98C379;">&#39;&quot;string&quot;&#39;</span><span style="color:#7F848E;font-style:italic;"> // &quot;string&quot;</span></span>
<span class="line"><span style="color:#98C379;">&#39;&quot;&quot;string&quot;&quot;&#39;</span><span style="color:#7F848E;font-style:italic;"> // &quot;&quot;string&quot;&quot;</span></span>
<span class="line"><span style="color:#98C379;">&#39;&#39;&#39;string&#39;</span><span style="color:#7F848E;font-style:italic;"> // &#39;string</span></span>
<span class="line"></span>
<span class="line"><span style="color:#98C379;">&quot;string&quot;</span><span style="color:#7F848E;font-style:italic;"> // string</span></span>
<span class="line"><span style="color:#98C379;">&quot;&#39;string&#39;&quot;</span><span style="color:#7F848E;font-style:italic;"> // &#39;string&#39;</span></span>
<span class="line"><span style="color:#98C379;">&quot;&#39;&#39;string&#39;&#39;&quot;</span><span style="color:#7F848E;font-style:italic;"> // &#39;&#39;string&#39;&#39;</span></span>
<span class="line"><span style="color:#98C379;">&quot;&quot;&quot;string&quot;</span><span style="color:#7F848E;font-style:italic;"> // &quot;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)),t("p",null,[s[1]||(s[1]=e("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 ")),i(n,{to:"/UserGuide/V1.3.x/Background-knowledge/Data-Type.html"},{default:r(()=>s[0]||(s[0]=[e("Data Type Doc")])),_:1}),s[2]||(s[2]=e("."))]),s[4]||(s[4]=a(`<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>[&#39;\\u2E80&#39;..&#39;\\u9FFF&#39;] (UNICODE Chinese characters)</li></ul></li></ul><h3 id="reverse-quotation-marks" tabindex="-1"><a class="header-anchor" href="#reverse-quotation-marks"><span>Reverse quotation marks</span></a></h3><p><strong>If the following situations occur, the identifier needs to be quoted using reverse quotes:</strong></p><ul><li>The identifier contains special characters that are not allowed.</li><li>The identifier is a real number.</li></ul><h4 id="how-to-use-quotation-marks-in-identifiers-caused-by-reverse-quotation-marks" tabindex="-1"><a class="header-anchor" href="#how-to-use-quotation-marks-in-identifiers-caused-by-reverse-quotation-marks"><span>How to use quotation marks in identifiers caused by reverse quotation marks</span></a></h4><p><strong>Single and double quotes can be directly used in identifiers caused by reverse quotes.</strong></p><p><strong>In identifiers referenced with quotation marks, quotation marks can be used by double writing them, meaning \` can be represented as\`\`.</strong></p><p>example:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><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</span></span>
<span class="line"><span style="color:#98C379;">create device template \`</span><span style="color:#ABB2BF;">t1</span><span style="color:#98C379;">\`\`</span><span style="color:#ABB2BF;">t</span><span style="color:#98C379;">\` </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&#39;t &quot;t</span></span>
<span class="line"><span style="color:#98C379;">create device template \`</span><span style="color:#ABB2BF;">t1</span><span style="color:#98C379;">&#39;t&quot;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><h4 id="examples-of-reverse-quotation-marks" tabindex="-1"><a class="header-anchor" href="#examples-of-reverse-quotation-marks"><span>Examples of Reverse Quotation Marks</span></a></h4><ul><li><p>When the trigger name encounters the above special situations, reverse quotation marks should be used to reference it:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">Create</span><span style="color:#ABB2BF;"> trigger 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 &#39;org.apache.iotdb.db.engine.trigger.example.AlertListener&#39;</span></span>
<span class="line"><span style="color:#98C379;">WITH (</span></span>
<span class="line"><span style="color:#98C379;"> &#39;lo&#39; = &#39;0&#39;, </span></span>
<span class="line"><span style="color:#98C379;"> &#39;hi&#39; = &#39;100.0&#39;</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>When the UDF name encounters the above special situations, reverse quotation marks should be used for reference:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">Create</span><span style="color:#ABB2BF;"> a UDF named </span><span style="color:#D19A66;">111</span><span style="color:#ABB2BF;">, which </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:#C678DD;"> and</span><span style="color:#ABB2BF;"> needs </span><span style="color:#C678DD;">to</span><span style="color:#ABB2BF;"> be quoted </span><span style="color:#C678DD;">in</span><span style="color:#ABB2BF;"> reverse quotation marks.</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;"> &#39;org.apache.iotdb.udf.UDTFExample&#39;</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>When the metadata template name encounters the above special situations, reverse quotation marks should be used for reference:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#ABB2BF;"># </span><span style="color:#C678DD;">Create</span><span style="color:#ABB2BF;"> a metadata template named </span><span style="color:#D19A66;">111</span><span style="color:#ABB2BF;">, </span><span style="color:#C678DD;">where</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:#C678DD;"> and</span><span style="color:#ABB2BF;"> needs </span><span style="color:#C678DD;">to</span><span style="color:#ABB2BF;"> be quoted </span><span style="color:#C678DD;">in</span><span style="color:#ABB2BF;"> reverse quotation marks.</span></span>
<span class="line"><span style="color:#C678DD;">create</span><span style="color:#ABB2BF;"> device 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>When the username and role name encounter the above special situations, reverse quotation marks should be used for reference. Regardless of whether reverse quotation marks are used or not, spaces are not allowed in the username and role name. Please refer to the instructions in the permission management section for details.</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><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;">\` &#39;write_pwd&#39;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#98C379;"># Create Character 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>When encountering the above special situations in continuous query identification, reverse quotation marks should be used to reference:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><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>When the names Pipe and PipeSink encounter the above special situations, reverse quotation marks should be used for reference:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><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;">&#39;ip&#39;</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> &#39;输入你的IP&#39;</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;">&gt;=</span><span style="color:#ABB2BF;">yyyy-mm-dd HH:MM:SS) </span><span style="color:#C678DD;">WITH</span><span style="color:#98C379;"> &#39;SyncDelOp&#39;</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> &#39;true&#39;</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>In the Select clause, an alias can be specified for the value in the result set, which can be defined as a string or identifier. Examples are as follows:</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><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 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 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></div></li><li><p>Used to represent key value pairs, the keys and values of key value pairs can be defined as constants (including strings) or identifiers. Please refer to the Key Value Pair section for details.</p></li><li><p>Non database nodes in the path are allowed to contain the symbol <code>*</code>. When using it, the node needs to be enclosed in reverse quotes (as shown below), but this usage is only recommended when the path inevitably contains <code>*</code>.</p><div class="language-sql line-numbers-mode" data-highlighter="shiki" data-ext="sql" data-title="sql" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#98C379;">\`root.db.*\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div></li></ul>`,21))])}const m=l(d,[["render",u],["__file","Syntax-Rule.html.vue"]]),v=JSON.parse('{"path":"/UserGuide/V1.3.x/Reference/Syntax-Rule.html","title":"Identifiers","lang":"en-US","frontmatter":{"description":"Identifiers 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":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://iotdb.apache.org/zh/UserGuide/V1.3.x/Reference/Syntax-Rule.html"}],["meta",{"property":"og:url","content":"https://iotdb.apache.org/UserGuide/V1.3.x/Reference/Syntax-Rule.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:title","content":"Identifiers"}],["meta",{"property":"og:description","content":"Identifiers 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":"2025-02-25T11:06:36.000Z"}],["meta",{"property":"article:modified_time","content":"2025-02-25T11:06:36.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Identifiers\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-02-25T11:06:36.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Literal Values","slug":"literal-values","link":"#literal-values","children":[{"level":3,"title":"String Literals","slug":"string-literals","link":"#string-literals","children":[]},{"level":3,"title":"Numeric Literals","slug":"numeric-literals","link":"#numeric-literals","children":[]},{"level":3,"title":"Timestamp Literals","slug":"timestamp-literals","link":"#timestamp-literals","children":[]},{"level":3,"title":"Boolean Literals","slug":"boolean-literals","link":"#boolean-literals","children":[]},{"level":3,"title":"NULL Values","slug":"null-values","link":"#null-values","children":[]}]},{"level":2,"title":"Identifier","slug":"identifier","link":"#identifier","children":[{"level":3,"title":"Usage scenarios","slug":"usage-scenarios-1","link":"#usage-scenarios-1","children":[]},{"level":3,"title":"Constraints","slug":"constraints","link":"#constraints","children":[]},{"level":3,"title":"Reverse quotation marks","slug":"reverse-quotation-marks","link":"#reverse-quotation-marks","children":[]}]}],"git":{"createdTime":1690869728000,"updatedTime":1740481596000,"contributors":[{"name":"Lei","username":"Lei","email":"33376433+LeiRui@users.noreply.github.com","commits":1,"url":"https://github.com/Lei"},{"name":"wanghui42","username":"wanghui42","email":"105700158+wanghui42@users.noreply.github.com","commits":3,"url":"https://github.com/wanghui42"},{"name":"W1y1r","username":"W1y1r","email":"150988475+W1y1r@users.noreply.github.com","commits":5,"url":"https://github.com/W1y1r"},{"name":"CritasWang","username":"CritasWang","email":"critas@outlook.com","commits":1,"url":"https://github.com/CritasWang"}]},"readingTime":{"minutes":4.39,"words":1318},"filePathRelative":"UserGuide/V1.3.x/Reference/Syntax-Rule.md","localizedDate":"August 1, 2023","autoDesc":true}');export{m as comp,v as data};