[TOC] # CREATE VIEW ## 描述 该语句用于创建视图语句,如果指定了 OR REPLACE 子句,该语句能够替换已有的视图。 视图在数据库中实际上并不是以表的形式存在,每次使用时他们就会派生。视图是作为在 CREATE VIEW 语句中指定的 SELECT 语句的结果而派生出来的。 OceanBase 2.2.50 支持可更新视图。 ## 格式 ~~~ create_view_stmt: CREATE [OR REPLACE] VIEW view_name [(column_name_list)] AS select_stmt; column_name_list: column_name [, column_name ...] ~~~ ## 参数解释 <table data-tag="table" id="table-lpu-z4j-1o1" class="table"><colgroup width="155" span="1" data-tag="col" id="col-qgt-7ax-1vy" colwidth="1*" colnum="1" colname="col1" style="width:50%" class="col"></colgroup><colgroup width="558" span="1" data-tag="col" id="col-nsj-wi4-clz" colwidth="1*" colnum="2" colname="col2" style="width:50%" class="col"></colgroup><thead id="thead-b8g-k8d-pvl" class="thead"><tr id="tr-um2-c5u-6kp"><th id="td-nde-roj-ht7"><p id="p-tyw-git-0d1"><b>参数</b></p></th><th id="td-hqk-l35-z5w"><p id="p-0uc-xso-se6"><b>描述</b></p></th></tr></thead><tbody data-tag="tbody" id="tbody-etl-byy-rbt" class="tbody"><tr data-tag="tr" id="tr-8qv-6ei-w6v" class="tr"><td data-tag="td" id="td-7q2-8br-xlq" class="td"><p data-tag="p" id="p-8lr-57s-57r" class="p">OR REPLACE</p></td><td data-tag="td" id="td-37c-7rm-uhs" class="td"><p data-tag="p" id="p-lhu-3gx-73m" class="p">表示如果要创建的同义词名称已存在,则使用新的定义重新创建同义词。</p></td></tr><tr data-tag="tr" id="tr-nhh-al4-uag" class="tr"><td data-tag="td" id="td-5gq-45r-97x" class="td"><p data-tag="p" id="p-d2i-h1p-928" class="p">view_name</p></td><td data-tag="td" id="td-e44-1i5-9q9" class="td"><p data-tag="p" id="p-44g-bb7-oc1" class="p">视图名。</p></td></tr><tr data-tag="tr" id="tr-jlt-bsw-gmu" class="tr"><td data-tag="td" id="td-fk6-3gu-egs" class="td"><p data-tag="p" id="p-mcl-x71-j8p" class="p">select_stmt</p></td><td data-tag="td" id="td-oh6-cmn-e4a" class="td"><p data-tag="p" id="p-0ct-0hk-689" class="p">是一种 SELECT 语句。它给出了视图的定义。该语句可以从基表或其他视图进行选择。</p></td></tr><tr data-tag="tr" id="tr-v02-chm-max" class="tr"><td data-tag="td" id="td-hbr-n2p-f76" class="td"><p data-tag="p" id="p-fxz-nxc-y2i" class="p">column_name_list</p></td><td data-tag="td" id="td-7cp-h7t-exe" class="td"><p data-tag="p" id="p-7wx-rfu-1nn" class="p">视图必须具有唯一的列名,不得有重复,就像基表那样。默认情况下,由 SELECT 语句检索的列名将用作视图列名。</p><p data-tag="p" id="p-szv-jf6-3il" class="p"></p><p data-tag="p" id="p-rdm-ulb-d98" class="p">要想为视图列定义明确的名称,可使用可选的 column_name_list 子句,列出由逗号隔开的 ID。column_name_list 中的名称数目必须等于SELECT语句检索的列数。</p><p data-tag="p" id="p-ixt-u5b-p2g" class="p"></p><p data-tag="p" id="p-9br-fou-yuy" class="p">SELECT 语句检索的列可以是对表列的简单引用。也可以是使用函数、常量值、操作符等的表达式。</p></td></tr></tbody></table> ## 示例 选择表 t 中的 c1、c2 列来创建视图 v。 ~~~ create or replace view v(vc1, vc2) as select c1, c2 from t; ~~~