📜  PostgreSQL – 更新插入(1)

📅  最后修改于: 2023-12-03 15:33:45.093000             🧑  作者: Mango

PostgreSQL – 更新插入

在 PostgreSQL 中,有两个主要的操作可以用来更新现有数据或者插入新的数据:UPDATEINSERT。本文将会介绍这两个操作的使用方式,并提供一些实用的例子来帮助你更好地理解。

UPDATE 操作

UPDATE 操作用于更新现有数据。它可以根据给定的条件来更新指定的数据行。下面是 UPDATE 操作的基本语法:

UPDATE table SET column1 = value1, column2 = value2 WHERE condition;

这里的 table 是要更新的表的名称,column1column2是要更新的列的名称,value1value2 是将要更新的值。WHERE 子句用于指定要更新的行的条件。

以下是一个实例,演示了如何使用 UPDATE 操作更新一个记录:

UPDATE employees SET salary = 50000 WHERE name = 'John Doe';

这会在 employees 表中找到 name 为 John Doe 的员工记录,并将其工资更新为 50000。

INSERT 操作

INSERT 操作用于向表中插入新的数据。以下是 INSERT 操作的基本语法:

INSERT INTO table (column1, column2, ...) VALUES (value1, value2, ...);

这里的 table 是要插入数据的表的名称,column1column2 等为要插入的列名,value1value2 等则为要插入的值。

以下是一个实例,演示了如何使用 INSERT 操作向表中插入一条新的记录:

INSERT INTO employees (name, salary, department) VALUES ('Jane Doe', 55000, 'HR');

这会向 employees 表中插入一条新的记录,表示一位名为 Jane Doe 的 HR 员工,其工资为 55000。

UPDATE OR INSERT 操作

在某些情况下,你可能希望通过一个操作来更新数据行,如果这些行不存在,则插入新的行。PostgreSQL 允许使用以下语法来实现这一目的:

INSERT INTO table (column1, column2, ...) VALUES (value1, value2, ...)
ON CONFLICT (conflict_column) DO UPDATE SET column1 = value1, column2 = value2, ...;

这里的 conflict_column 是一个唯一或主键列。如果冲突列的值已经存在于表中,则执行 UPDATE 操作,否则执行 INSERT 操作。

以下是一个实例,演示了如何使用 UPDATE OR INSERT 操作:

INSERT INTO employees (name, salary, department) VALUES ('John Doe', 50000, 'IT')
ON CONFLICT (name) DO UPDATE SET salary = 50000, department = 'IT';

这个例子会首先在 employees 表中查找 name 为 John Doe 的记录,如果该记录已经存在,则更新其工资和部门信息。如果该记录不存在,则插入一条新的记录,表示一个名为 John Doe 的 IT 员工,其工资为 50000。

总结

本文介绍了在 PostgreSQL 中使用 UPDATE 和 INSERT 操作来更新和插入数据的基本语法。此外,还介绍了如何使用 UPDATE OR INSERT 操作来同时更新和插入数据。