📜  插入 pg 选择结果 - SQL (1)

📅  最后修改于: 2023-12-03 15:10:11.502000             🧑  作者: Mango

插入 pg 选择结果 - SQL

在 PostgreSQL 中,插入语句用于将数据插入到表中。当您需要将数据插入到表中时,可以使用 INSERT INTO 语句。

插入语句基本语法
INSERT INTO table_name(column_1, column_2, ..., column_n)
VALUES (value_1, value_2, ..., value_n);
  • table_name:插入操作所要插入数据的表名。
  • column_1, column_2,..., column_n:要插入数据的表的列名。
  • value_1, value_2,..., value_n:要插入到表中的值。
示例

以一个 Employee 表为例,该表包含以下列:empid,empname,salary 和 location。

在执行插入操作之前,需要先创建 Employee 表。

CREATE TABLE Employee (
    empid SERIAL PRIMARY KEY,
    empname TEXT NOT NULL,
    salary INTEGER NOT NULL,
    location TEXT NOT NULL
);

接下来,将使用 INSERT INTO 语句将数据插入到 Employee 表中。

INSERT INTO Employee (empname, salary, location)
VALUES ('Alice', 50000, 'New York');

INSERT INTO Employee (empname, salary, location)
SELECT empname, salary, location FROM Employee WHERE empid = 1;
插入选择语句

您还可以使用 INSERT INTO SELECT 语句,将另一个表的结果集插入到要插入的表中。

INSERT INTO table_name(column_1, column_2, ..., column_n)
SELECT column_1, column_2, ..., column_n
FROM another_table
WHERE condition;
  • table_name:插入操作所要插入数据的表名。
  • column_1, column_2,..., column_n:要插入数据的表的列名。
  • another_table:您要插入的表。
  • **condition:**包括要插入的数据所需的条件的 SQL 表达式。
示例

假设您有以下两个表:employee 和 customer,它们都有 columns firstname、lastname、email。

CREATE TABLE Employee (
    empid SERIAL PRIMARY KEY,
    firstname TEXT NOT NULL,
    lastname TEXT NOT NULL,
    email TEXT NOT NULL
);

CREATE TABLE Customer (
    custid SERIAL PRIMARY KEY,
    firstname TEXT NOT NULL,
    lastname TEXT NOT NULL,
    email TEXT NOT NULL
);

现在,您可以使用 INSERT INTO SELECT 语句将 employee 表中的某些行插入到 customer 表中。

INSERT INTO Customer (firstname, lastname, email)
SELECT firstname, lastname, email
FROM Employee
WHERE empid IN (2,3,4);

可以通过运行以下命令验证是否成功插入 record。

SELECT * FROM Customer;
结论

INSERT INTO 和 INSERT INTO SELECT 是 PostgreSQL 中最常用的插入语句。INSERT INTO SELECT 可以使用 SELECT 语句来插入选择结果集。这两个语句可以让您更轻松地插入数据,无需编写所有列的值。