PostgreSQL UPDATE
在本教程中,我们将学习用于更新表中当前数据的
PostgreSQL UPDATE 命令。
在 PostgreSQL 中,使用UPDATE命令
更改表中的当前记录 。要更新选定的行,我们必须使用 WHERE子句;否则将更新所有行。
更新命令的语法
更新命令的语法如下:
UPDATE table_name
SET column1 = value1,
column2 = value2....,
columnN = valueN
WHERE
condition;
我们具有以下参数,用于以上语法中:
参数 |
说明 |
UPDATE |
它是一个关键字,用于更新表的行。 |
Table_name |
在UPDATE子句之后,我们将使用此参数定义表名以更新数据。 |
Column1 = value1, Column2 = value2, ...... ColumnN = valueN |
它用于在需要在 SET 子句中修改其值的表中描述列的名称。我们可以使用逗号(,)分隔每对列和值。 |
WHERE |
我们将使用 WHERE子句过滤记录并仅提取基本记录。 |
condition |
它是一个表达式,用于返回 Boolean 类型的值。并且此表达式仅对行返回 true 。 |
PostgreSQL更新命令示例
为了更好地理解,我们将看到
PostgreSQL 更新命令。
我们将使用在
插入命令中创建的department表部分。
首先,借助以下命令,我们将看到
department表的结构:
SELECT * FROM department;
执行select命令后,我们将得到以下结果:
PostgreSQL UPDATE表的示例
在这里,我们将
last_update 列的
NULL 值修改为
当前日期,并使用以下命令的帮助:
UPDATE department
SET last_update = DEFAULT
WHERE
last_update IS null;
执行上述命令后,我们将得到以下结果:
在在上述查询中,我们将
DEFAULT关键字应用于
last_update 列,该列采用默认值
当前日期。并且
WHERE子句仅更新
last_update 列值为
NULL 的那些行。
示例Update命令升级表中所有行的操作
要为
中的所有行将位置列中的值更新为 USA department表中,我们使用以下命令:
注意: 在以下更新命令中,我们忽略了WHERE子句:
UPDATE department
SET location = 'U.S.A';
执行上述查询后,它将更新
department表中的位置列:
我们将使用
select命令在
department表中验证以上命令的输出:
在同一表中,我们还可以从其他列中更新列的数据。
以下命令用于将
dept_name 列的值复制到
department表的
description列中:
UPDATE department
SET description = dept_name;
执行上述查询后,它将更新
department表中的说明列:
此后,我们将使用select命令在
department中查看更新的列(描述) strong>表:
PostgreSQL更新联接示例
在这里,我们将使用
department_tmp表,该表的结构与
department 表相同:
以下命令用于更新值,该值来自
department表中
department_tmp 表中的列:
UPDATE department_tmp
SET location = department.location,
description = department.description,
last_update = department.last_update
FROM
department
WHERE
department_tmp.Dept_id = department.Dept_id;
执行上述查询后,它将更新
department_tmp表:
要验证
department_tmp 表,我们将使用
Select 命令:
SELECT * FROM department_tmp;
然后,我们将获得以下输出:
注意: 在上面的update命令中,我们使用FROM子句描述了包含在更新中的第二个表(department)。
此处,我们在
WHERE子句中使用了连接条件。有时,此UPDATE命令称为
UPDATE INNER JOIN或UPDATE JOIN ,因为
UPDATE 命令涉及两个或多个表。
通过返回条件更新命令
默认情况下,
更新命令可以返回受影响的行数,并且还可以在
返回的帮助下返回有效数据部分。
以下命令用于更新
department表中具有
Dept_id 1 的行,并返回已更新的
数据。
UPDATE department
SET description = 'Names of departments',
location = 'NewYork'
WHERE
dept_id = 1
RETURNING dept_id,
description,
location;
执行上述命令后,我们将获得以下表结构:
之后,我们将使用select命令检查
department表中的更新数据:
SELECT
*
FROM
department
WHERE
dept_id = 1;
运行上面的Select查询后,我们将获得以下输出: