视图
视图与基本表不同,是一个虚拟的表。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图中查询出的数据也随之改变。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。
语法格式
创建视图
""CREATE[ TEMP |TEMPORARY]VIEWview_name [ ( column_name [, ...] ) ]ASquery;
删除视图
""DROPVIEWview_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| |10003869| |Grace| |3869| hello || |6985| maps |Joes| |22009976| world |James| |50004421| Admin |Local| |3000(6rows)
从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 |1000Grace|
|Joes| 2200
James |5000Local| 3000
(6 rows)
使用完成后,可以删除视图释放空间。
""openGauss=# DROP VIEW CUSTOMER_VIEW;DROP VIEW