PostgreSQL View(视图)
PostgreSQL View 技术文档
简介
在关系型数据库中,视图(View)就是一个虚拟的表,是由一个或多个表的行数据产生的结果集。一个视图不是存储的数据,而是一个预定义的SELECT语句。经过预定义的SELECT语句中的条件,如果匹配行被发现,那么它们将会出现在视图中。所以,通过创建视图,我们可以方便地重用SELECT查询语句,尤其是对于复杂的SELECT查询语句。
创建视图
我们可以使用以下语法创建视图:
CREATE VIEW view_name AS
SELECT column1, column2....
FROM table_name
WHERE [condition];
其中,view_name是我们想要创建的视图的名称,column1、column2…为需要在视图中展示的列名称,table_name表示我们需要从哪个表中获取数据,[condition]为过滤条件。
举例:
CREATE VIEW country_ecommerce AS
SELECT
country,
sum(sales) as total_sales
FROM
sales_summary
WHERE
ecommerce = true
GROUP BY
country;
使用视图
创建成功后,我们可以使用以下语句查询视图:
SELECT * from view_name;
这个语句将会从创建的视图中获取数据。
除了这个,我们也可以使用视图在其他的语句中进行其他操作。例如:
SELECT country, total_sales/1000 as sales_k
FROM country_ecommerce
WHERE total_sales > 1000000
ORDER BY sales_k desc;
这样,我们就可以在视图中进行筛选、排序等操作,从而实现我们的目标。
优点
-
视图可以隐藏表的细节和复杂性,从而简化了SQL语句。
-
视图是虚拟的,因此,我们可以选择公开哪些数据,并且不会影响到原始数据的安全性。
-
视图可以使得复杂查询更加容易。
-
视图可以简化我们的应用程序中的SQL调用。
缺点
-
视图可以对性能造成影响。尤其是在于视图所关联的表的数量或大小增加时,影响会更加明显。
-
视图们不支持外键或其他约束。
总结
视图是一个非常有用的工具,可以帮助我们保护敏感数据、简化数据库访问,并提高我们 SQL 应用程序的性能。除此以外,还可以为应用程序提供更好的性能和数据访问安全性。