PostgreSQL 教程: UPDATE

九月 6, 2023

摘要:在本教程中,您将学习如何使用 PostgreSQL 的UPDATE语句来更新表中的现有数据。

PostgreSQL UPDATE 语句简介

PostgreSQL 的UPDATE语句允许您修改表中的数据。下面说明了UPDATE语句的语法:

UPDATE table_name
SET column1 = value1,
    column2 = value2,
    ...
WHERE condition;

在这个语法中:

  • 首先,在UPDATE关键字后指定要更新数据的表的名称。
  • 其次,在SET关键字后指定列及其新值。SET子句中未出现的列保留其原始值。
  • 第三,确定在WHERE子句的条件下要更新哪些行。

WHERE子句是可选的。如果省略WHERE子句,UPDATE语句将更新表中的所有行。

UPDATE语句执行成功时,会返回以下命令标签:

UPDATE count

count是更新的行数,包括值未更改的行。

返回更新的行

UPDATE语句有一个可选的RETURNING子句,用于返回更新的行:

UPDATE table_name
SET column1 = value1,
    column2 = value2,
    ...
WHERE condition
RETURNING * | output_expression AS output_name;

PostgreSQL UPDATE 示例

让我们看一些使用 PostgreSQL 的UPDATE语句的示例。

设置样例表

以下语句创建一个表,名为courses,并向其中插入一些数据

DROP TABLE IF EXISTS courses;

CREATE TABLE courses(
	course_id serial primary key,
	course_name VARCHAR(255) NOT NULL,
	description VARCHAR(500),
	published_date date
);

INSERT INTO 
	courses(course_name, description, published_date)
VALUES
	('PostgreSQL for Developers','A complete PostgreSQL for Developers','2020-07-13'),
	('PostgreSQL Admininstration','A PostgreSQL Guide for DBA',NULL),
	('PostgreSQL High Performance',NULL,NULL),
	('PostgreSQL Bootcamp','Learn PostgreSQL via Bootcamp','2013-07-11'),
	('Mastering PostgreSQL','Mastering PostgreSQL in 21 Days','2012-06-30');

以下语句返回courses表中的数据:

SELECT * FROM courses;

PostgreSQL Update - Courses Table

1) PostgreSQL UPDATE – 更新一行

以下语句使用UPDATE语句更新 ID 为 3 的课程。它将published_date列从NULL更改为'2020-08-01'

UPDATE courses
SET published_date = '2020-08-01' 
WHERE course_id = 3;

该语句返回以下消息,表明一行已更新:

UPDATE 1

以下语句查询 ID 为 3 的课程来验证更新:

SELECT * FROM courses
  WHERE course_id = 3;

PostgreSQL Update - update one row

2) PostgreSQL UPDATE – 更新行并返回更新后的行

以下语句更新 ID 为 2 的课程。它将课程的published_date修改为2020-07-01,并返回更新后的课程。

UPDATE courses
SET published_date = '2020-07-01'
WHERE course_id = 2
RETURNING *;

PostgreSQL UPDATE and return updated row

概括

  • 使用 PostgreSQL 的UPDATE语句更新表的一列或多列中的数据。

  • 使用RETURNING子句从UPDATE语句中返回更新的行。