PostgreSQL INSERT:向表中插入数据

PostgreSQL INSERT 语句

在 PostgreSQL 中,insert 语句用于将新行或行插入到表中。您可以插入由值表达式指定的行,零行或多行查询结果。

PostgreSQL INSERT INTO 语法

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

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

查询执行后,您可以看到输出消息。

Insert oid 1

如果只插入了一行,将显示此输出消息,oid 是分配给已插入行的数字 OID。

PostgreSQL Insert Into 表示例

考虑以下具有两列的表“tutorials”。

“id” integer DEFAULT value 1
“tutorial_name” text DEFAULT value postgre
并且没有约束

PostgreSQL Insert into Table

以下是 PostgreSQL insert into table 的步骤

第 1 步) 插入一行到

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

PostgreSQL Insert into Table

注意:插入行时,只有字符或日期值需要用单引号括起来。

第 2 步) 但是,如果您向所有列插入数据,则可以省略列名。相同的 insert 语句也可以写成:

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

PostgreSQL Insert into Table

第 3 步) 数据值按列在表中的顺序排列,并用逗号分隔。

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

例如,以下两个命令都具有与下面显示的相同的效果

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

PostgreSQL Insert into Table

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

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

INSERT INTO tutorials(id) VALUES (5);

PostgreSQL Insert into Table

第 5 步) 您还可以为单个列或整个行请求默认值

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

PostgreSQL Insert into Table

第 6 步) 您可以使用单个命令插入多行

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

PostgreSQL Insert into Table

第 7 步)PostgreSQL 中,插入查询结果(可能为零行、一行或多行)也是可行的

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

PostgreSQL Insert into Table

使用 pgAdmin 的 PostgreSQL Insert 语句

以下是使用 pgAdmin in Postgre SQL 进行 Insert 语句的步骤

第 1 步) 在对象树中

  1. 右键单击要插入数据的表
  2. 选择 Scripts
  3. INSERT Script

PostgreSQL Insert statement using pgAdmin

第 2 步) 在 Insert Panel 中

  1. 编辑查询
  2. 单击闪电按钮
  3. 观察输出

PostgreSQL Insert statement using pgAdmin

第 3 步) 您也可以转到 Tools > Query Tools 来打开 Query Editor,但您不会得到默认的 insert 查询。

PostgreSQL Insert statement using pgAdmin

摘要

代码/参数/提示 描述
INSERT INTO TABLE_NAME (column1, column2, …columnN)
VALUES (value1, value2,…valueN);
用于将值插入表中
INSERT INTO tutorials(id, tutorial_name) VALUES (1, ‘postgre’);
INSERT INTO tutorials(tutorial_name, id) VALUES (‘postgre’,1);
列的顺序不重要。两者都将产生相同的影响。
INSERT INTO tutorials VALUES (1, ‘postgre’); 如果您为所有列提供值,则无需指定
INSERT INTO tutorials (id, tutorial_name)
SELECT id, tutorial_name FROM tutorials
WHERE tutorial_name = ‘mysql’;
您可以在 INSERT 查询中指定一个或多个通过名称引用的子查询。
DEFAULT VALUES 使用此子句用其默认值填充所有列。
expression 应分配给相应列的值和表达式。
omeDEFAULT 当相应列用其默认值填充时,使用 default 子句。