PostgreSQL View PostgreSQL Exists Condition PostgreSQL 连接 PostgreSQL View 在本节中,我们将了解PostgreSQL View的工作,例如如何创建 PostgreSQL View、更改 PostgreSQL View、更改 PostgreSQL View和删除 PostgreSQL View。 PostgreSQL View介绍 VIEW 是 PostgreSQL 中的一个伪表;它不是一个实体表,而是一个普通的表以供选择。View还可以表示连接表。它可以包含一个表的所有行或从一个或多个表中选择的行。 一个View简化了用户执行以下方面的工作: 它自然而直观地构建数据,并且易于查找。 我们可以通过一个View向用户授权,它有一个完整的记录,用户有权查看。 它限制对数据的访问,使用户只能看到有限的数据而不是完整的数据。 View提供了一个可靠的层,甚至是必要的表修改的列。 它汇总来自各种表格的数据以生成报告。 View可以帮助我们描述语句的难度,因为我们可以借助 SELECT 命令编写基于复杂查询的View命令。 在PostgreSQL 中,我们可以在 SQL shell(psql) 中执行View的所有活动: 使用 SQL shell (PSQL) 查看 PostgreSQL 在此,我们将使用 SQL shell(psql) 创建View、更改View和删除View。因此,为此,我们需要遵循以下过程: 创建 PostgreSQL View 要创建 PostgreSQL View,我们使用CREATE VIEW 命令。 句法 创建View命令的语法如下: CREATE [OR REPLACE] VIEW view-name AS SELECT column(s) FROM table(s) [WHERE condition(s)]; 在上面的语法中,我们有以下参数: 参数 描述 OR REPLACE 如果View已经存在,则 OR REPLACE 参数将替换该View。 The view name 它是我们想要创建的View的名称。 WHERE conditions 这些条件是选项,对于必须添加到View中的任何值,必须满足这些条件。 要在 psql 中创建View,我们将按照以下步骤操作: 步骤1 首先,我们将在本地系统中打开psql,我们将提供密码和登录 psql。 第2步 现在,我们将使用以下命令来选择或连接所需的数据库(javatpoint)。 postgres-# \c javatpoint 一旦我们执行了上面的命令,我们就会连接到javatpoint数据库,如下图所示: 第 3 步 我们将使用我们在 PostgreSQL 教程前面部分创建的Book\表。 要查看Book\表中存在哪些所有列,我们将使用select命令,如下所示: Select * public."Book"; 第四步 现在,我们准备好在Book\表的帮助下使用CREATE VIEW 命令**创建一个View**,如下所示: CREATE VIEW book_View AS SELECT BookID, Book_cost FROM public."Book" where Book_cost > '200'; 输出 一旦我们执行了上面的命令,我们将得到以下消息,即book_view已成功创建。 第 5 步 之后,我们将使用 Select 命令检查book_view 中值大于 200 的记录。 SELECT * FROM book_View; 输出 执行上述命令后,我们将得到那些book_cost大于200 的记录。 虽然Book\表有四个记录,但在这里,我们将获得添加到特定View的三个记录。 我们正在创建一个View,其中仅包含Book\表的一列,借助以下命令: CREATE VIEW Book_View2 AS SELECT book_cost FROM public."Book" WHERE book_cost > '225'; 输出 执行上述命令后,我们将收到以下消息,即book_view2已成功创建。 该book_view2只包含Book_cost从列书表。这里我们将使用 Select 命令查看book_view2View的数据: SELECT * FROM book_view2; 输出 执行上述命令后,我们将得到那些成本大于225 的记录。 更改 PostgreSQL View 要在 psql 中更改 PostgreSQL View,我们将使用CREATE OR REPLACE VIEW命令,因为可以修改View的定义而不必删除它。 更改 PostgreSQL View的语法 在 PostgreSQL 中更改View的语法如下: CREATE OR REPLACE view_name AS query 注意:PostgreSQL 9.4 之前的版本不支持删除View中的剩余列。如果我们需要执行它,我们将收到以下错误消息“[Err] 错误:无法从View中删除列”。这就是为什么查询必须创建在创建View时创建的类似列。 详细地说,新列需要类似的数据类型、类似的名称以及与生成时类似的顺序。但是 PostgreSQL 允许我们在列列表的末尾添加更多的列。 因此,为此,我们需要三个表 Book、User1 和 book_view2来更改 PostgreSQL View。 我们将使用 SELECT 命令来检查Book、User1\和book_view2\表中存在的记录。 所述Book_view2\表是如下通过使用选择的命令: Select * from book_view2; 该书\表如下用的帮助下选择命令: Select * from public."Book"; 在Select命令的帮助下,我们可以看到User1\表中可用的现有数据: Select * from User1; 例如,在下面的命令中,我们将使用创建或替换View命令来更新Viewbook_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已经创建成功。 现在,我们将在执行上述命令后使用 Select 命令来检查操作是否正常: Select * from book_view2; 输出 一旦我们执行了上面的命令,我们将得到下面的结果,我们可以看到在我们使用 JOIN 命令时View已经改变,现在我们有来自两个不同表的两列。 更改 PostgreSQL View 要更改View的定义,我们使用ALTER VIEW命令。 例如,我们可以使用以下语句将View名称从book_view2修改为book_info: ALTER VIEW book_view2 RENAME TO book_info; 输出 一旦我们执行了上面的命令,我们会得到下面的消息窗口,这表明book_view2已经被修改成功。 如果我们从book_view2 中选择数据,我们将收到以下错误,如下面的屏幕截图所示: 删除 PostgreSQL View 要删除 PostgreSQL View,我们可以使用DROP VIEW命令。 句法 drop view命令的语法如下: DROP VIEW [IF EXISTS] view-name; 在上面的语法中,我们有以下参数: 参数 描述 View-name 该View名称参数用于指定的观点,这是我们想放弃的名称。 If Exists 它是一个可选参数,只有当我们没有定义它并试图删除一个不存在的View时才需要它,我们会得到一个错误。 在这里,我们将删除book_info,它是我们在上一节中使用 drop view 命令创建的: DROP VIEW book_info; 输出 执行上述命令后,我们将收到以下消息,显示特定View已成功删除。 PostgreSQL Exists Condition PostgreSQL 连接