PgSQL 视图

xiaokeai Lv5

视图就是由查询语句定义的虚拟表。对用户来说,视图就如同一张真的表。从视图中看到的数据可能来自数据库中的一张或多张表,也可能来自数据库外部,这主要取决于视图的查询语句是如何定义的。

一般数据库提供的视图大多是只读的,PostgreSQL数据库中提供的视图默认也是只读的,但也可以使用规则系统做出可更新的视图。

创建视图

创建视图的语法如下:

1
2
CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW name [ ( column_name [, ...] ) ]
AS query

示例,建一张用户表“users”,其中包含了敏感字段“password”,现在要建一张视图把敏感字段“password”排除掉,命令如下:

1
2
3
4
5
6
7
CREATE TALBE users(
id int,
user_name varchar(40),
password varchar(256),
user_email text, user_mark text
);
CREATE VIEW vw_users AS SELECT id, user_name, user_email, user_mark FROM users;

也可以使用TEMP或TEMPORARY关键字建一张临时视图,当session结束时,这张视图就会消失

1
create temp view vw_users as select id, user_name, user_email, user_mark from users;

可更新视图

@TODO

On this page
PgSQL 视图