📜  csv 到数据 postgres - SQL (1)

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

从 CSV 导入 PostgreSQL 数据库

在实际应用中,经常需要从 CSV 文件转储大量数据到 PostgreSQL 数据库中。PostgreSQL 是一个强大的关系型数据库管理系统,支持 SQL 标准和高级扩展。为了实现这个目标,我们需要实现以下几个步骤:

  1. 建立数据库表架构
  2. 创建 CSV 数据源
  3. 将 CSV 文件导入 PostgreSQL 表
建立数据库表架构

使用 PostgreSQL,可以使用 SQL DDL (Data Definition Language) 语句来创建表。以下是一个示例,我们将创建一张名为 employee 的表,其中包含三个字段:idnamesalary

CREATE TABLE employee (
    id      INTEGER PRIMARY KEY,
    name    TEXT,
    salary  REAL
);
创建 CSV 数据源

在将 CSV 文件加载到 PostgreSQL 中之前,我们需要创建一个指向 CSV 文件的数据源。这可以通过使用 PostgreSQL fdw 扩展来完成。fdw 扩展可以用于连接其他数据库、NoSQL 数据库和文件系统等。以下是如何创建一个指向 CSV 文件的数据源的示例。

CREATE SERVER csv FOREIGN DATA WRAPPER file_fdw;

CREATE FOREIGN TABLE employee_csv (
  id integer,
  name text,
  salary real
)
SERVER csv
OPTIONS ( filename '/path/to/employee.csv', format 'csv', header 'true', delimiter ',' );

上面的示例中,我们使用 file_fdw 扩展创建了一个名为 csv 的服务器对象,并使用 csv 服务器创建了一个名为 employee_csv 的外部表。我们为外部表指定了CSV 文件的路径、文件格式、列头和分隔符等信息。

将 CSV 文件导入 PostgreSQL 表

我们可以使用标准的 SQL INSERT INTO 语句将 CSV 数据加载到新创建的表中。以下示例演示了如何将 employee_csv 中的数据插入到 employee 表中。

INSERT INTO employee (id, name, salary)
SELECT id, name, salary FROM employee_csv;
总结

在本文中,我们演示了如何使用 PostgreSQL 的 fdw 扩展将 CSV 文件加载到 PostgreSQL 数据库中。我们首先创建了数据库表的架构,然后创建了一个指向 CSV 文件的数据源。最后,我们使用 SQL INSERT INTO 语句将 CSV 数据加载到我们新创建的表中。