PostgreSQL Update

17 Mar 2025 | 4 分钟阅读

在本教程中,我们将学习 PostgreSQL UPDATE 命令,用于更新表中的现有数据。

PostgreSQL 中,UPDATE 命令用于更改表中的现有记录。 要更新选定的行,我们必须使用 WHERE 子句;否则,所有行都将被更新。

Update 命令的语法

update 命令的语法如下

我们有以下参数,在上面的语法中使用

参数描述
更新它是一个关键字,用于更新表的行。
Table_name在 UPDATE 子句之后,我们将使用此参数来定义要更新数据的表名
Column1 = value1,
Column2 = value2,
......
ColumnN = valueN
它用于描述表中列的名称,这些列的值需要在 SET 子句中修改。 我们可以使用逗号 (,) 来分隔每对列和值
其中我们将使用 WHERE 子句来过滤记录,仅获取必要的记录。
条件它是一个表达式,用于返回 Boolean 类型的值。 并且此表达式仅对行返回 true

PostgreSQL update 命令的示例

为了更好地理解,我们将看到 PostgreSQL Update 命令的示例。

我们将采用在Insert 命令部分中创建的department 表

首先,我们将借助以下命令查看 department 表的结构

执行 select 命令后,我们将获得以下结果

PostgreSQL Update

PostgreSQL UPDATE 表的示例

在这里,我们将借助以下命令将 last_update 列的 NULL 值修改为当前日期

执行上述命令后,我们将获得以下结果

PostgreSQL Update

在上面的查询中,我们将 DEFAULT 关键字应用于 last_update 列,该列根据默认值采用当前日期。 并且 WHERE 子句仅更新 last_update 列值为 NULL 的那些行。

使用 Update 命令升级表中所有行的示例

要将 location 列中的值更新为 department 表中所有行的 U.S.A,我们使用以下命令

注意:在下面的 update 命令中,我们忽略了 WHERE 子句

执行上述查询后,它将更新 department 表中的 location 列:

PostgreSQL Update

我们将使用 select 命令来验证 department 表中上述命令的输出:


PostgreSQL Update

并且在同一个表中,我们也可以从一个附加列更新列的数据。

以下命令用于将 dept_name 列的值复制到 department 表的 description 列

执行上述查询后,它将更新 department 表中的 description 列:

PostgreSQL Update

之后,我们将使用 select 命令查看 department 表更新后的列(description)

PostgreSQL Update

PostgreSQL update joins 命令的示例

在这里,我们将采用 department_tmp 表,该表具有与 department 表相同的结构

以下命令用于更新来自 department 表的值,这些值用于 department_tmp 表中的列

执行上述查询后,它将更新 department_tmp 表:

PostgreSQL Update

要验证 department_tmp 表,我们将使用 Select 命令

并且,我们将获得以下输出

PostgreSQL Update

注意:在上面的 update 命令中,我们使用 FROM 子句来描述包含在 update 中的第二个表(department)。

在这里,我们在 WHERE 子句中使用了 join 条件。 有时,此 UPDATE 命令被称为 UPDATE INNER JOIN 或 UPDATE JOIN,因为两个或多个表参与了 UPDATE 命令。

通过返回条件更新命令

默认情况下,update 命令可以返回受影响的行数,并且它还可以借助返回部分返回有效数据。

以下命令用于更新 department 表Dept_id 1 的行,并返回更新后的数据

执行上述命令后,我们将获得以下表结构

PostgreSQL Update

之后,我们将使用 select 命令来检查 department 表中的更新数据:

运行上述 Select 查询后,我们将获得以下输出

PostgreSQL Update
下一个主题PostgreSQL 删除