打开网易新闻 查看精彩图片

视图与基本表不同,是一个虚拟的表。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图中查询出的数据也随之改变。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。

语法格式

  • 创建视图
  • ""
  • CREATE [ TEMP | TEMPORARY ] VIEW view_name [ ( column_name [, ...] ) ] AS query;
  • 删除视图
  • ""
  • DROP VIEW view_name ;

参数说明

  • TEMP | TEMPORARY
  • 创建临时视图。
  • view_name
  • 要创建的视图名称。可以用模式修饰。
  • 取值范围:字符串,符合标识符命名规范。
  • column_name
  • 可选的名称列表,用作视图的字段名。如果没有给出,字段名取自查询中的字段名。
  • 取值范围:字符串,符合标识符命名规范。
  • query
  • 为视图提供行和列的SELECT或VALUES语句。

示例

表customer_t1 ,数据内容如下:

""

openGauss=# SELECT * FROM customer_t1; c_customer_sk | c_customer_id | c_first_name | c_last_name | amount

3869 | hello | Grace | | 1000

3869 | | Grace | |

3869 | hello | | |

6985 | maps | Joes | | 2200

9976 | world | James | | 5000

4421 | Admin | Local | | 3000(6 rows)

从customer_t1表创建视图,视图只从customer_t1表中选取几列:

""

openGauss=# CREATE VIEW CUSTOMER_VIEW AS SELECT c_first_name, amount FROM customer_t1;CREATE VIEW

可以查询CUSTOMER_VIEW,与查询表的方式类似。

""

openGauss=# SELECT * FROM CUSTOMER_VIEW;

得到结果如下:

""

c_first_name | amount

Grace | 1000

Grace |

Joes | 2200

James | 5000

Local | 3000(6 rows)

使用完成后,可以删除视图释放空间。

""

openGauss=# DROP VIEW CUSTOMER_VIEW;

DROP VIEW

更多内容请参考:

https://docs.opengauss.org/zh/docs/3.1.0/docs/BriefTutorial/BriefTutorial.html