
# 管理视图
图1创建和管理视图   
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/figure/zh-cn_image_0000002526897338.gif "点击放大")
#### 背景信息
当用户需要频繁查询多张表的特定字段组合时，可通过定义视图来避免重复编写查询语句。视图通过虚拟表抽象底层表结构，简化常用查询操作。
视图是一种逻辑表，与物理存储的基本表不同，其数据不实际驻留于磁盘。数据库仅保存视图的查询定义，实际数据始终保留在关联的基础表中。当基础表数据发生变更时，视图查询结果将动态同步这些变化。视图如同一个实时数据窗口，允许用户访问其关注的数据镜像。每次访问视图时，系统都会重新执行其定义查询以获取最新数据。
#### 管理视图
操作前请先创建表，步骤请参见[创建表](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0028.html#ZH-CN_TOPIC_0000002527825746)。
- 创建视图，具体操作请参见[CREATE VIEW](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0576.html#ZH-CN_TOPIC_0000002527826218)。
  执行如下命令创建新视图myview，其中mytable为已经创建的、包含名为c1整型字段的用户表。
  ```
  gaussdb=# CREATE OR REPLACE VIEW myview AS SELECT * FROM mytable WHERE trunc(c1) > 1000;
  CREATE VIEW
  ```
  ![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  CREATE VIEW中的OR REPLACE子句是可选的。若使用此子句，当视图已存在时，数据库系统将自动替换原有视图定义。
  
- 查询视图
  执行如下命令查询myview视图。
  ```
  gaussdb=# SELECT * FROM myview;
   c1 
  ----
  (0 rows)
  ```
  
- 查看当前用户下的视图
  ```
  gaussdb=# SELECT * FROM my_views;
  ```
  
- 查看所有视图
  ```
  gaussdb=# SELECT * FROM adm_views;
  ```
  
- 查看某视图的具体信息
  执行如下命令查询myview视图的详细信息。
  ```
  gaussdb=# \d+ myview
                   View "public.myview"
   Column |  Type   | Modifiers | Storage | Description 
  --------+---------+-----------+---------+-------------
   c1     | integer |           | plain   | 
  View definition:
   SELECT  *
     FROM mytable
    WHERE trunc(mytable.c1::double precision) > 1000::double precision;
  ```
  
- 删除视图
  执行如下命令删除myview视图。
  ```
  gaussdb=# DROP VIEW myview;
  DROP VIEW
  ```
  
 
