PostgreSQL INSERT:将数据插入表中

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 插入语句

总结

代码/参数/提示 描述
插入表名 (列 1,列 2,…列 N)
值(值1,值2,…值N);
用于将值插入表中
插入教程(id,tutorial_name)值(1,'postgre');
插入教程(tutorial_name,id)值('postgre',1);
列的顺序并不重要。两者都具有相同的效果。
插入教程值(1,'postgre'); 如果您为所有列提供值,则无需指定
插入教程(id,教程名称)
从教程中选择 id、tutorial_name
其中教程名称 = 'mysql';
您可以在 INSERT 查询中指定按名称引用的单个或多个子查询。
默认值 使用此子句可以用其默认值填充所有列。
表达 应分配给相应列的值和表达式。
默认 当相应列填充其默认值时,使用 default 子句。