Skip to content

Latest commit

 

History

History
128 lines (92 loc) · 3.31 KB

File metadata and controls

128 lines (92 loc) · 3.31 KB

摘要: 在本教程中,你将学习如何使用 PostgreSQLINSERT 语句向表中插入一行或多行数据。

PostgreSQL INSERT 语句简介

创建表后,您可以向其中插入一行或多行数据。您可以使用 PostgreSQLINSERT 语句向表中插入新行。

以下是 INSERT 语句的基本语法:

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

在此语法中:

  • INSERT INTO 是指示 PostgreSQL 向表中插入新行的关键字。
  • table_name 是你想要添加数据的表的名称。
  • 在表名之后,在括号 () 内指定一个以逗号分隔的列列表。
  • VALUES 是一个关键字,用于告知 PostgreSQL 你想要添加到表中的数据。
  • VALUES 关键字后,在一组括号内指定与列对应的、以逗号分隔的值列表。

语句末尾的分号 (;) 是可选的。当你有两个语句且想要分隔它们时,分号会很有用。

向表中插入一行示例

假设你有一个名为 inventories 的表:

CREATE TABLE IF NOT EXISTS inventories (
  name VARCHAR(255),
  brand VARCHAR(50),
  quantity INT,
  price DECIMAL(19, 2)
);

以下示例使用 INSERT 语句向 inventories 表中插入新行:

INSERT INTO
  inventories (name, brand, quantity, price)
VALUES
  ('iPhone 14 Pro', 'Apple', 10, 999.99);

请注意,表名后列出的列的顺序并不重要。你可以随意更改列的顺序。例如:

INSERT INTO inventories (brand, name, quantity, price)

但你还需要更改值的顺序,以使其与列匹配:

VALUES ('Apple', 'iPhone 14 Pro', 10, 999.99);

在这个示例中,我们交换了 name 列和 brand 列的顺序,以及 iPhone 14 ProApple 的顺序。

向表中插入多行示例

PostgreSQL 允许您使用以下语法一次向表中插入多行:

INSERT INTO table_name(column1, column2, ...)
VALUES
     (value11, value12, ...),
     (value21, value22, ...),
     (value31, value32, ..),
     ...;

在这种语法中,你不是在 VALUES 子句中指定一行数据,而是提供多行数据。

例如,以下语句向 inventories 表中插入两行数据:

INSERT INTO
  inventories (name, brand, quantity, price)
VALUES
  ('Galaxy S23 Ultra', 'Samsung', 15, 1199.99),
  ('Pixel 7 Pro', 'Google', 8, 899.99);

返回插入的行

要返回插入的行,需在 INSERT 语句中添加 RETURNING 子句:

INSERT INTO table_name(column1, column2, ...)
VALUES(value1, value2, ...)
RETURNING *;

星号 * 表示返回插入行的所有列。要选择要返回的列,可以在RETURNING子句中指定列名:

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

在这个示例中,我们返回插入行的 column1column2

以下示例向 inventory 表中插入一行新数据,并返回插入的行:

INSERT INTO
  inventories (name, brand, quantity, price)
VALUES
  ('Xperia 1 IV', 'Sony', 7, 1299.99)
RETURNING
  *;

输出:

    name     | brand | quantity |  price
-------------+-------+----------+---------
 Xperia 1 IV | Sony  |        7 | 1299.99

摘要

  • 使用 INSERT 语句向表中插入一行或多行数据。
  • 使用 RETURNING 子句返回插入的行。