管理视图 
=========================

本节主要介绍如何创建、修改和删除视图。

视图用来展示表的查询结果。大部分能使用表的地方，都可以使用视图。如果经常访问的数据分布在多个表里时，使用视图是最好的方法。

创建视图 
-------------------------

您可以使用 `CREATE VIEW` 语句来创建视图。

示例：创建视图 stock_item。该视图内容取自 stock 和 item 两张表，两张表做表连接即可得到该视图。

```sql
obclient> CREATE  VIEW stock_item
     AS
     SELECT /*+ leading(s) use_merge(i) */
     i_price, i_name, i_data, s_i_id, s_w_id, s_order_cnt, s_ytd, s_remote_cnt, s_quantity, s_data, s_dist_01, s_dist_02, s_dist_03, s_dist_04, s_dist_05, s_dist_06, s_dist_07, s_dist_08, s_dist_09, s_dist_10
     FROM stok s, item i
     WHERE s.s_i_id = i.i_id;
Query OK, 0 rows affected (0.01 sec)
```



修改视图 
-------------------------

您可以使用 `CREATE OR REPLACE VIEW` 语句来对视图进行修改。

示例：修改视图 stock_item。

```sql
obclient> CREATE OR REPLACE VIEW stock_item
     AS
     SELECT /*+ leading(s) use_merge(i) */
     i_price, i_name, i_data, s_i_id, s_w_id, s_order_cnt, s_ytd, s_remote_cnt, s_quantity, s_data, s_dist_01, s_dist_02, s_dist_03, s_dist_04, s_dist_05, s_dist_06, s_dist_07, s_dist_08, s_dist_09, s_dist_10
     FROM stok s, item i
     WHERE s.s_i_id = i.i_id;
Query OK, 0 rows affected (0.02 sec)
```



删除视图 
-------------------------

您可以使用 `DROP VIEW` 语句删除一个或多个视图，删除视图并不会删除视图引用的表。

如果当前视图被其他视图所引用，则视图删除后将会导致依赖当前视图的其他视图的查询失败。

删除视图时，需确保当前用户具备该视图的 DROP 权限。

示例：删除视图 V1。

```sql
obclient> DROP VIEW V1;
```


