PostgreSQL教程

PostgreSQL VIEW

在本节中,我们将了解 PostgreSQL视图的工作原理,例如如何创建PostgreSQL视图,更改PostgreSQL视图,更改PostgreSQL视图,然后删除PostgreSQL视图。

PostgreSQL视图简介

VIEW是PostgreSQL中的伪表。它不是实体表,但显示为要选择的普通表。视图也可以表示联接的表。它可以包含一个表的所有行或一个或多个表中的选定行。
视图简化了用户执行以下方面的操作:
它自然而直观地构建数据并使其易于查找。 我们可以向视图授予用户权限,该视图具有用户有权查看的完整记录。 它限制了对数据的访问,因此用户只能看到有限的数据,而不能看到完整的数据。 视图提供了一个可靠的层,甚至是必要的表修改列。 它汇总了各个表中的数据以生成报告。 视图可以帮助我们描述语句的难度,因为我们可以借助SELECT命令基于复杂的查询编写视图命令。
在 PostgreSQL 中,我们可以在SQL Shell(psql)中执行所有视图活动:
使用SQL Shell(PSQL)的PostgreSQL视图
在此,我们将创建视图,更改视图并删除使用SQL Shell(psql)查看。因此,为此,我们需要遵循以下过程:

创建PostgreSQL视图

要创建PostgreSQL视图,我们使用 CREATE VIEW命令。
语法
创建视图命令的语法如下:
CREATE [OR REPLACE] VIEW view-name AS
 SELECT column(s)
 FROM table(s)
 [WHERE condition(s)];
在以上语法中,我们具有以下参数:
参数 说明
OR REPLACE 如果视图已经存在,则OR REPLACE参数将替换该视图。
view-name 这是我们要创建的视图的名称。
WHERE condition(s) 这些条件是选项,对于必须在视图中添加的任何值,必须满足这些条件。
要在psql中创建视图,我们将执行以下步骤:
步骤1
首先,我们将打开在我们的本地系统中 psql ,我们将提供密码并登录到psql。
PostgreSQL视图
第2步
现在,我们将使用以下命令选择或连接所需的数据库(lidihuo)。
postgres-# \c lidihuo  
执行上述命令后,我们将连接到 lidihuo 数据库,如下图所示:
PostgreSQL视图
步骤3
我们将使用 Book 表。
要查看 Book 表中存在哪些所有列,我们将使用 select 命令,如下所示:
Select * public."Book";
PostgreSQL视图
第4步
现在,我们准备好了在 Book 表的帮助下使用 CREATE VIEW命令,创建视图:
CREATE VIEW book_View AS SELECT BookID, Book_cost 
FROM public."Book" 
where Book_cost > '200'; 
输出
一旦执行了上述命令,我们将收到以下消息,说明 book_view 已成功创建。
PostgreSQL视图
第5步
之后,我们将使用Select命令检查 book_view 中记录的值大于200。
SELECT * FROM book_View;
输出
执行上述命令后,我们将获得 book_cost 大于 200 的那些记录。
PostgreSQL视图
书 表具有四个记录,在这里,我们将获得三个记录,这些记录已添加到特定视图中。
我们正在创建一个视图,其中包括借助于以下命令, Book 表中只有一列:
CREATE VIEW Book_View2 AS 
SELECT book_cost 
FROM public."Book" 
WHERE book_cost > '225';
输出
执行上述命令后,我们将收到以下消息,说明 book_ view2 已成功创建。
PostgreSQL视图
book_view2 仅包含 Book_cost Book 表中的列。在这里,我们将使用"选择"命令来查看 book_view2 视图的数据:
SELECT * FROM book_view2;
输出
执行上述命令后,我们将获得成本超过 225 的那些记录。
PostgreSQL视图

更改PostgreSQL视图

要在psql中更改PostgreSQL视图,我们将使用 CREATE OR REPLACE VIEW 命令,因为可以无需删除视图就可以修改视图的定义。
更改PostgreSQL视图的语法 >
在PostgreSQL中更改视图的语法如下:
CREATE OR REPLACE view_name 
AS 
query
注意: PostgreSQL的9.4之前的版本不支持删除视图中的剩余列。如果需要执行此操作,则会收到以下错误消息" [Err]错误: 无法从视图中删除列"。这就是查询必须创建在创建视图时创建的类似列的原因。
详细来说,新列需要类似的数据类型,相似的名称,并且它们的生成顺序相似。但是PostgreSQL允许我们在列列表的末尾添加更多列。
因此,为此,我们需要三个表Book,User1和book_view2 来更改PostgreSQL视图。
我们将使用SELECT命令检查 Book,User1, 和 book_view2 表。
使用 select 命令, Book_view2 表如下:
Select * from book_view2;

PostgreSQL视图
Book 表是如下所示,借助 Select 命令:
Select * from public."Book";

PostgreSQL视图
我们可以在 User1 中看到现有数据em> 表,借助 Select 命令:
Select * from User1;

PostgreSQL视图
例如,在以下命令中,我们将使用 Create或Replace查看命令以更新视图 book_view2 :
CREATE or REPLACE VIEW book_view2 AS
SELECT book_cost, user_name
FROM public."Book"
INNER JOIN User1
ON public."Book".UserID = User1.UserID
WHERE book_cost > '225';
输出
执行上述命令后,我们将获得以下消息窗口,该窗口显示 book_view2 已成功创建。
PostgreSQL视图
现在,我们将使用Select命令来检查操作是否正常运行执行上述命令后:
Select * from book_view2;
输出
一旦执行上述命令,我们将得到以下结果,在该结果中,我们可以看到使用JOIN命令时视图已更改,并且现在我们有两个不同表中的两列。
PostgreSQL视图

更改PostgreSQL视图

要更改视图的定义,请使用 ALTER VIEW 命令。
例如,我们可以从 <通过使用以下语句,将strong> book_view2 更改为 book_info :
ALTER VIEW book_view2 RENAME TO book_info;
输出
执行上述命令后,将显示以下消息窗口,该窗口显示 book_view2 已成功更改。
PostgreSQL视图
如果我们从 book_view2 中选择数据,我们将在下面的屏幕截图中看到以下错误消息:
PostgreSQL视图

删除PostgreSQL视图

要删除PostgreSQL视图,我们可以使用 DROP VIEW 命令。
语法
放置视图命令的语法如下:
DROP VIEW [if EXISTS] view-name;
在上面的语法中,我们具有以下参数:
参数 说明
view-name view-name参数用于指定我们要删除的视图的名称。
if EXISTS 这是一个可选参数,仅当我们未定义它并尝试删除不存在的视图时才有必要,否则会出现错误。
在这里,我们要放置 book_info ,它是在上一节中使用drop view命令创建的:
DROP VIEW book_info;
输出
执行上述命令后,我们将获得以下消息,显示特定的视图已成功删除。
PostgreSQL视图
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4