<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Json - Tag - Simon Jakubowski</title><link>https://sijakubo.github.io/info/tags/json/</link><description>Json - Tag - Simon Jakubowski</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>sijakubo@gmail.com ( Simon Jakubowski)</managingEditor><webMaster>sijakubo@gmail.com ( Simon Jakubowski)</webMaster><lastBuildDate>Sat, 10 Jul 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://sijakubo.github.io/info/tags/json/" rel="self" type="application/rss+xml"/><item><title>Postgres JSON beginner Class</title><link>https://sijakubo.github.io/info/posts/post-4/</link><pubDate>Sat, 10 Jul 2021 00:00:00 +0000</pubDate><author>sijakubo@gmail.com ( Simon Jakubowski)</author><guid>https://sijakubo.github.io/info/posts/post-4/</guid><description><![CDATA[<p>Operators see: <a href="https://www.postgresql.org/docs/9.5/functions-json.html">https://www.postgresql.org/docs/9.5/functions-json.html</a></p>
<h1 id="create-column-using-jsonb">Create column using jsonb</h1>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">article</span><span class="w"> </span><span class="p">(</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="n">id</span><span class="w">      </span><span class="n">UUID</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="p">,</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="n">properties</span><span class="w"> </span><span class="n">JSONB</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="p">);</span><span class="w">
</span></span></span></code></pre></div><h1 id="insert-values">Insert values</h1>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">article</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="n">gen_random_uuid</span><span class="p">(),</span><span class="w"> </span><span class="s1">&#39;{
</span></span></span><span class="line"><span class="cl"><span class="s1">  &#34;price&#34;: 12.1,
</span></span></span><span class="line"><span class="cl"><span class="s1">  &#34;name&#34;: &#34;Kugelschreiber&#34;,
</span></span></span><span class="line"><span class="cl"><span class="s1">  &#34;tags&#34;: {
</span></span></span><span class="line"><span class="cl"><span class="s1">    &#34;manufacturer&#34;: &#34;Siemens&#34;,
</span></span></span><span class="line"><span class="cl"><span class="s1">    &#34;discounted&#34;: true
</span></span></span><span class="line"><span class="cl"><span class="s1">  }
</span></span></span><span class="line"><span class="cl"><span class="s1">}&#39;</span><span class="p">)</span><span class="w">
</span></span></span></code></pre></div><h1 id="select-value-from-json">Select value from JSON</h1>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">select</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="n">properties</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="s1">&#39;price&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="n">properties</span><span class="w"> </span><span class="o">-&gt;&gt;</span><span class="w"> </span><span class="s1">&#39;price&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="k">from</span><span class="w"> </span><span class="n">article</span><span class="w">
</span></span></span></code></pre></div><ul>
<li><code>-&gt;</code> will extract the value as JSONB</li>
<li><code>-&gt;&gt;</code> will extract the value as text</li>
</ul>
<h1 id="compare-values">Compare values</h1>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="k">FROM</span><span class="w"> </span><span class="n">article</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="k">WHERE</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="n">properties</span><span class="w"> </span><span class="o">-&gt;&gt;</span><span class="w"> </span><span class="s1">&#39;price&#39;</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">NUMERIC</span><span class="p">)</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">10</span><span class="w">
</span></span></span></code></pre></div><h1 id="check-where-value-is-contained">Check where value is contained</h1>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="k">FROM</span><span class="w"> </span><span class="n">article</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="k">WHERE</span><span class="w"> </span><span class="n">properties</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="s1">&#39;tags&#39;</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="s1">&#39;discounted&#39;</span><span class="w">
</span></span></span></code></pre></div><p>or</p>]]></description></item></channel></rss>