doc-exports/docs/dws/dev/dws_04_0039.html
Lu, Huayi ef0ada5a59 DWS DEV 20240716 version
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Co-authored-by: Lu, Huayi <luhuayi@huawei.com>
Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
2024-11-02 09:07:47 +00:00

59 lines
11 KiB
HTML

<a name="EN-US_TOPIC_0000001510402221"></a><a name="EN-US_TOPIC_0000001510402221"></a>
<h1 class="topictitle1">Creating and Managing Views</h1>
<div id="body8662426"><p id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_p1222114510216">Views allow users to save queries. Views are not physically stored on disks. Queries to a view run as subqueries. A database only stores the definition of a view and does not store its data. The data is still stored in the original base table. If data in the base table changes, the data in the view changes accordingly. In this sense, a view is like a window through which users can know their interested data and data changes in the database. A view is triggered every time it is referenced.</p>
<div class="section" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_se07db171a2b64c3fb143727491321a84"><h4 class="sectiontitle">Creating a view</h4><div class="p" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_p5748154345117">Run the <strong id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_b3388382103">CREATE VIEW</strong> command to create a view.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_screen4748144395117"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">MyView</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">customer</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">c_customer_sk</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">150</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="note" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_note1375044310517"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_p177509433510">The <strong id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_b972653521499">OR REPLACE</strong> parameter in this command is optional. It indicates that if the view exists, the new view will replace the existing view.</p>
</div></div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_section58811612145614"><h4 class="sectiontitle">View Details</h4><ul id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_ul1935918240561"><li id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_ld156225587b74e3b87897058f1c64c01">View the <em id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_i1940751652314">MyView</em> view. Real-time data will be returned.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_s1c95a4d61a4246e692a17dfe51f3090c"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">myview</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_l9cb9329987774605ae4dfca6ac7315bb">Run the following command to query the views in the current user:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_s36fb946788504784b5fdef0e59badd89"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">user_views</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_l11ca417ba0314592b8addcf7aceae216">Run the following command to query all views:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_s95cf13ccf3134aa7a0b79ff2baafd345"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">dba_views</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_l9c0976676c1f42e298a5839b786156cd">View details about a specified view.<div class="p" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_af4c6848c60274f1fb2826ab5ac0a1839"><a name="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_l9c0976676c1f42e298a5839b786156cd"></a><a name="en-us_topic_0000001188323660_l9c0976676c1f42e298a5839b786156cd"></a>Run the following command to view details about the dba_users view:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_s169fca93eb264b91b87f0c3e239ed28d"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span>
<span class="normal">7</span>
<span class="normal">8</span></pre></div></td><td class="code"><div><pre><span></span><span class="err">\</span><span class="n">d</span><span class="o">+</span><span class="w"> </span><span class="n">dba_users</span>
<span class="w"> </span><span class="k">View</span><span class="w"> </span><span class="ss">&quot;PG_CATALOG.DBA_USERS&quot;</span>
<span class="w"> </span><span class="k">Column</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">Type</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Modifiers</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">Storage</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Description</span>
<span class="c1">----------+-----------------------+-----------+----------+-------------</span>
<span class="w"> </span><span class="n">USERNAME</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nb">CHARACTER</span><span class="w"> </span><span class="nb">VARYING</span><span class="p">(</span><span class="mi">64</span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">extended</span><span class="w"> </span><span class="o">|</span>
<span class="k">View</span><span class="w"> </span><span class="n">definition</span><span class="p">:</span>
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">PG_AUTHID</span><span class="p">.</span><span class="n">ROLNAME</span><span class="p">::</span><span class="nb">CHARACTER</span><span class="w"> </span><span class="nb">VARYING</span><span class="p">(</span><span class="mi">64</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">USERNAME</span>
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">PG_AUTHID</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
</li></ul>
</div>
<div class="section" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_section45851157145414"><h4 class="sectiontitle">Rebuilding a View</h4><p id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_p183837313551">Run the <strong id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_b43816219174">ALTER VIEW</strong> command to rebuild a view without entering query statements.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_screen1480125020551"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">ALTER</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">myview</span><span class="w"> </span><span class="n">REBUILD</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_section15139145913534"><h4 class="sectiontitle">Deleting a View</h4><div class="p" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_p1118103719543">Run the <strong id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_b1020032241919">DROP VIEW</strong> command to delete a view.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_screen1211893725413"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">DROP</span><span class="w"> </span><span class="k">VIEW</span><span class="w"> </span><span class="n">myview</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<p id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_p18486161614592">DROP VIEW ... The <strong id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_b68310464199">CASCADE</strong> command can be used to delete objects that depend on the view. For example, view A depends on view B. If view B is deleted, view A will also be deleted. Without the CASCADE option, the <strong id="EN-US_TOPIC_0000001510402221__en-us_topic_0000001188323660_b31880972115">DROP VIEW</strong> command will fail.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_04_0016.html">Defining Database Objects</a></div>
</div>
</div>