📜  PostgreSQL更新(1)

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

PostgreSQL更新

PostgreSQL是一个强大的开源关系型数据库管理系统,支持多种各种操作系统,并提供了广泛的功能,如事务、外键、触发器等。在这篇文章中,我们将深入探讨PostgreSQL的更新功能。

基本语法

在PostgreSQL中,使用UPDATE语句来更新表中的数据。它具有以下基本语法:

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

其中,

  1. table_name 是要更新数据的表的名称。
  2. column1 = value1, column2 = value2, ... 表示要在表中更新的列及其对应的值。
  3. WHERE condition 是一个可选的子句,表示更新数据时要满足的条件。如果省略WHERE子句,则将所有行更新。

下面是一个例子:

UPDATE employees
SET salary = 5000
WHERE department = 'IT';

这将更新employees表中在IT部门工作的员工的薪水为5000

更新多个列

可以更新一个或多个列。例如:

UPDATE employees
SET salary = 5000, bonus = 1000
WHERE department = 'IT';

这将更新employees表中在IT部门工作的员工的薪水为5000,并为他们添加一个奖金为1000

更新多行

可以使用WHERE子句来指定需要更新的行。例如:

UPDATE employees
SET salary = 5000
WHERE department = 'IT' AND hire_date < '2020-01-01';

这将更新employees表中在IT部门工作,并且在2020年1月1日之前入职的员工的薪水为5000

更新从其他表中获取的值

有时候需要从其他表中获取值来更新表中的数据。这可以通过使用子查询来实现。例如:

UPDATE employees
SET salary = (
  SELECT AVG(salary)
  FROM employees
  WHERE department = 'IT'
)
WHERE department = 'Finance';

这将更新employees表中在Finance部门工作的员工的薪水为IT部门所有员工的平均薪水。

使用从其他表查询的值来更新

还可以使用另一个表中的值来更新表中的数据。这可以通过使用JOIN操作来实现。例如:

UPDATE employees e
SET salary = e2.salary
FROM employees2 e2
WHERE e.id = e2.id;

这将更新employees表中的薪水,使其等于employees2表中具有相同id的员工的薪水。

总结

在PostgreSQL中,使用UPDATE语句可以更新表中的数据。可以更新一个或多个列,也可以使用WHERE子句来指定需要更新的行。可以从其他表中获取值,并使用子查询或JOIN操作将这些值用于更新。