摘要: 在本教程中,你将学习如何使用 PostgreSQL 的 INSERT 语句向表中插入一行或多行数据。
创建表后,您可以向其中插入一行或多行数据。您可以使用 PostgreSQL 的 INSERT 语句向表中插入新行。
以下是 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 Pro 和 Apple 的顺序。
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;在这个示例中,我们返回插入行的 column1 和 column2 。
以下示例向 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子句返回插入的行。