PostgreSQL INSERT:将数据插入表中

⚡ 智能摘要

PostgreSQL INSERT语句使用SQL向表中添加新行。 Lessons 涵盖语法、单行和多行插入、RETURNING 子句、默认值以及通过 pgAdmin 界面以可视方式添加记录。

  • 📥 基本语法: INSERT INTO table (cols) VALUES (vals) — 规范形式。
  • 📋 多行: 以逗号分隔的值元组插入多行数据。
  • 🔄 返回: 在同一调用中获取插入的行。
  • ???? 默认值: 省略的列将获得 DEFAULT 或 NULL。
  • 🖥️ pgAdmin 图形用户界面: 无需编写 SQL 代码即可直观地添加行。
  • 🤖 AI SQL: Copilot 生成参数化插入语句。

PostgreSQL 插入

PostgreSQL 插入语句

In PostgreSQL,插入语句帮助在表中插入新行或新列。您可以插入由值表达式指定的行、零行或查询产生的多行。

的语法 PostgreSQL 插入

INSERT INTO TABLE_NAME (column1, column2, ...columnN)
VALUES (value1, value2,...valueN);

您可以看到,在上面的语法中,列 1 到 N 是您想要插入数据的表中列的名称。目标列需要按任何特定顺序列出。查询或值子句提供的值是列的相应值。

一旦查询执行完毕,您就可以看到输出消息。

Insert oid 1

如果仅插入一行,则会显示此输出消息,oid 是分配给插入行的数字 OID。

示例 PostgreSQL 插入表格

请考虑下表“教程”,其中包含两列。

“id” 整数默认值 1
“tutorial_name” 文本默认值 postgre
并且没有任何限制

PostgreSQL 插入表格

以下是 PostgreSQL 插入表:

步骤1) 插入一行

INSERT INTO tutorials(id, tutorial_name) VALUES (1, 'postgre');

PostgreSQL 插入表格

注意:插入行时仅需要将字符或日期值括在单引号中。

步骤2) 但是,如果将数据插入到所有列中,则可以省略列名。 相同的插入语句也可以写成,

INSERT INTO tutorials VALUES (1, 'postgre');

PostgreSQL 插入表格

步骤3) 数据值按表中列的出现顺序列出,并以逗号分隔。

上述语法存在一个问题,即您需要知道表中列的顺序。为了解决这个问题,您还可以明确列出列。

例如,下面给出的两个命令具有如下所示的相同效果:

INSERT INTO tutorials(id, tutorial_name) VALUES (1, 'postgre');
INSERT INTO tutorials(tutorial_name, id) VALUES ('postgre',1);

PostgreSQL 插入表格

步骤4) 在此示例中,您可以看到,如果您没有所有列的值,则可以省略其中一些。

在这种情况下,如果指定了默认值,列将自动填充其默认值。

INSERT INTO tutorials(id) VALUES (5);

PostgreSQL 插入表格

步骤5) 您还可以请求各个列或整行的默认值:

INSERT INTO tutorials(id, tutorial_name) VALUES (1, DEFAULT);
INSERT INTO tutorials DEFAULT VALUES;

PostgreSQL 插入表格

步骤6) 您只需一个命令即可输入多行:

INSERT INTO tutorials(id, tutorial_name) VALUES
(1, 'postgre'),
(2, 'oracle'),
(3, 'mysql'),
(4, 'mongo');

PostgreSQL 插入表格

步骤7) In PostgreSQL,它还可以插入查询结果,该查询结果可能没有行,可能只有一行,也可能有多行:

INSERT INTO tutorials (id, tutorial_name)
SELECT id, tutorial_name FROM tutorials
WHERE tutorial_name = 'mysql';

PostgreSQL 插入表格

PostgreSQL 使用 pgAdmin 插入语句

以下是使用 Insert 语句的步骤 Postgre SQL 中的 pgAdmin

步骤1) 在对象树中

  1. 右键单击要插入数据的表
  2. 选择脚本
  3. 插入脚本

PostgreSQL 使用 pgAdmin 插入语句

步骤2) 在插入面板中

  1. 编辑查询
  2. 点击照明按钮
  3. 观察输出

PostgreSQL 使用 pgAdmin 插入语句

步骤3) 您也可以转到工具>查询工具来打开查询编辑器,但您将不会获得默认的插入查询。

PostgreSQL 使用 pgAdmin 插入语句

常见问题

使用单个以逗号分隔的元组进行插入:INSERT INTO t (a,b) VALUES (1,2), (3,4)。比多个单行插入操作快得多。

AI 工具生成参数化的 INSERT 语句以防止 SQL 注入,建议 RETURNING 子句,并将电子表格数据转换为多行 INSERT 语句。

是的。人工智能会生成逼真的种子数据,从模式中推断列类型,并写入数据。 Python 或者使用 shell 脚本批量插入数据。

RETURNING 函数会从同一语句中刚刚插入的行中提取列。使用 RETURNING * 可以提取所有列,也可以列出指定的列。

PostgreSQL 没有硬性行数限制,但非常大的语句可能会达到内存限制。请使用 COPY 语句进行批量加载。

始终使用带有 $1、$2 占位符的参数化查询。切勿将用户输入拼接到 INSERT SQL 字符串中。

是的。打开表格,选择“查看/编辑数据”,在表格中添加新行。pgAdmin 会自动生成 INSERT 语句。

INSERT 语句通过 SQL 逐行添加数据。COPY 语句则能更快地从文件中批量导入数据。建议在初始加载时使用 COPY 语句。

总结一下这篇文章: