📜  PostgreSQL – 更新

📅  最后修改于: 2022-05-13 01:57:15.905000             🧑  作者: Mango

PostgreSQL – 更新

PostgreSQL 有一个 UPDATE 语句,用于更新或修改表中的现有数据。

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

我们来分析一下上面的语法:

  • 第一步是指定应该进行更改的表。
  • 然后我们列出要使用 SET 子句更新其值的列。
  • 最后一步是使用 WHERE 子句确定要准确更新哪些行。

让我们建立一个示例数据库和表来演示 UPDATE 语句。

  • 使用以下命令创建名为“company”的数据库:
    CREATE DATABASE company;
  • 使用以下命令将“员工”表添加到数据库中以显示公司层次结构:
    CREATE TABLE employee (
        employee_id INT PRIMARY KEY,
        first_name VARCHAR (255) NOT NULL,
        last_name VARCHAR (255) NOT NULL,
        manager_id INT,
        FOREIGN KEY (manager_id) 
        REFERENCES employee (employee_id) 
        ON DELETE CASCADE
    );
  • 现在使用以下命令向表中添加一些员工数据:
    INSERT INTO employee (
        employee_id,
        first_name,
        last_name,
        manager_id
    )
    VALUES
        (1, 'Sandeep', 'Jain', NULL),
        (2, 'Abhishek ', 'Kelenia', 1),
        (3, 'Harsh', 'Aggarwal', 1),
        (4, 'Raju', 'Kumar', 2),
        (5, 'Nikhil', 'Aggarwal', 2),
        (6, 'Anshul', 'Aggarwal', 2),
        (7, 'Virat', 'Kohli', 3),
        (8, 'Rohit', 'Sharma', 3);

    manager_id列中的值表示员工向其报告的高级经理。如果是 Null,他/她不会向任何人报告。
    整体层次结构如下图所示:

    我们当前的表格如下所示:

    现在让我们更新上表中的数据。



    示例 1:
    在这里,我们将使用 UPDATE 语句将员工“Raju Kumar”的姓名更新为“Raju Singh”。

    UPDATE employee 
    SET last_name = 'Singh'
    WHERE first_name = 'Raju';

    输出:

    示例 2:
    在上面我们对单行进行了更新,但在这里我们将对多行进行更改。在这里,我们将每个人的姓氏更改为“Gupta”,其姓氏为“Aggarwal”。

    UPDATE employee
    SET last_name = 'Gupta'
    WHERE last_name = 'Aggarwal';

    输出: