📜  postgresql 从 csv 导入数据 - SQL (1)

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

使用 PostgreSQL 从 CSV 导入数据

本文将介绍如何使用 PostgreSQL 数据库从 CSV 文件中导入数据。我们将通过使用 SQL 命令和 COPY 命令来完成这个任务。

SQL 命令
  1. 创建数据表:首先,你需要创建一个用于存储 CSV 数据的数据表。你需要指定每个列的名称和数据类型。以下是一个示例:

    CREATE TABLE table_name (
        column1 datatype,
        column2 datatype,
        column3 datatype,
        ...
    );
    

    替换 table_name 为你要创建的表名,column1column2column3 等是表的列名,datatype 是每个列的数据类型。

  2. 导入数据:使用 INSERT INTO 语句将数据从 CSV 文件插入到创建的数据表中:

    INSERT INTO table_name (column1, column2, column3, ...)
    VALUES (value1, value2, value3, ...),
           (value1, value2, value3, ...),
           ...
    ;
    

    替换 table_name 为你创建的表名,column1column2column3 等是表的列名,value1value2value3 等是对应列的值。

COPY 命令

另一种导入 CSV 数据的方法是使用 PostgreSQL 的 COPY 命令。该命令非常高效且易于使用。

  1. 创建数据表:同样,你需要先创建一个用于存储 CSV 数据的数据表。可以使用前面提到的 SQL 命令来创建表。

  2. 导入数据:使用 COPY 命令将 CSV 文件的数据导入到数据表中:

    COPY table_name (column1, column2, column3, ...)
    FROM '/path/to/csv/file.csv'
    DELIMITER ','  -- CSV 文件的分隔符
    CSV HEADER;    -- 如果 CSV 文件包含标题行
    

    替换 table_name 为你创建的表名,column1column2column3 等是表的列名。/path/to/csv/file.csv 是你的 CSV 文件的路径。根据 CSV 文件的实际情况,你可能需要调整 DELIMITERCSV HEADER 参数。

示例

以下是使用 COPY 命令从 CSV 文件导入数据的完整示例:

-- 创建数据表
CREATE TABLE customers (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    phone VARCHAR(20)
);

-- 导入数据
COPY customers (name, email, phone)
FROM '/path/to/customers.csv'
DELIMITER ','
CSV HEADER;

上述示例创建了名为 customers 的数据表,并从 /path/to/customers.csv 导入了 CSV 文件中的数据。CSV 文件的每一行包含姓名、电子邮件和电话号码。

希望以上信息能对你有所帮助!