管理视图 ========================= 本节主要介绍如何创建、修改和删除视图。 视图用来展示表的查询结果。大部分能使用表的地方,都可以使用视图。如果经常访问的数据分布在多个表里时,使用视图是最好的方法。 创建视图 ------------------------- 您可以使用 `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; ```