管理视图
背景信息
当用户需要频繁查询多张表的特定字段组合时,可通过定义视图来避免重复编写查询语句。视图通过虚拟表抽象底层表结构,简化常用查询操作。
视图是一种逻辑表,与物理存储的基本表不同,其数据不实际驻留于磁盘。数据库仅保存视图的查询定义,实际数据始终保留在关联的基础表中。当基础表数据发生变更时,视图查询结果将动态同步这些变化。视图如同一个实时数据窗口,允许用户访问其关注的数据镜像。每次访问视图时,系统都会重新执行其定义查询以获取最新数据。
管理视图
操作前请先创建表,步骤请参见创建表。
- 创建视图,具体操作请参见CREATE VIEW。
执行如下命令创建新视图myview,其中mytable为已经创建的、包含名为c1整型字段的用户表。
1 2
gaussdb=# CREATE OR REPLACE VIEW myview AS SELECT * FROM mytable WHERE trunc(c1) > 1000; CREATE VIEW
CREATE VIEW中的OR REPLACE子句是可选的。若使用此子句,当视图已存在时,数据库系统将自动替换原有视图定义。
- 查询视图
- 查看当前用户下的视图
1gaussdb=# SELECT * FROM my_views;
- 查看所有视图
1gaussdb=# SELECT * FROM adm_views;
- 查看某视图的具体信息
执行如下命令查询myview视图的详细信息。
1 2 3 4 5 6 7 8 9
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;
- 删除视图