跳至主要内容

在 SQL 中处理电子表格

在本教程中,学习如何将电子表格导入 PostgreSQL 并对其进行分析。
· 5分钟 阅读

使用 AI 探索

电子表格可能是任何组织中最关键的要素之一(无论其类型)。很多情况下,您需要将一份非常重要的电子表格导入数据库服务器,以便能够高效查询。本教程将带您在 PostgreSQL 中完成这一操作。

本教程假设您已熟悉 SQL,并了解如何在 PostgreSQL 中编写简单的 SQL 查询。如果您是 SQL 新手,以下资源可能会有所帮助:

本教程分为以下两个主要部分:

  • 将电子表格转换为 .csv 文件
  • 将 .csv 文件导入 PostgreSQL 数据库

将电子表格转换为 .csv 文件

首先,您需要准备一份电子表格。您可以在任意 Excel 编辑器(如 Google 表格、Microsoft Excel 等)中创建。若要学习电子表格基础,您可以参加 DataCamp 的电子表格基础课程,或阅读这篇初学者电子表格教程。为便于跟随本教程,您可以使用这份电子表格,其中包含以下列:

  • ID
  • Name
  • Age
  • Percentage Marks

该电子表格共包含 20 条记录。

让我们快速看一下其快照(前 10 行):spreadsheet

该电子表格包含部分大学生的信息。

我们可以从快照中推断各列可能的数据类型:

  • ID、Age 和 Percentage Marks 为数值列。更具体地说,ID 和 Age 列可以为整数类型,Percentage Marks 列可以为浮点数类型。
  • Name 列为字符数据类型。

将这份电子表格(也可称为数据集)导入 PostgreSQL 数据库的最简便方法,是先将其转换为 .csv 文件,再导入 PostgreSQL。CSV 代表逗号分隔值,具有两个主要优势:

  • .csv 文件比电子表格轻量得多,因此在内存较低的环境中更易处理。
  • PostgreSQL 内置了许多用于高效处理 .csv 文件的实用工具。

每种 Excel 编辑器都支持将电子表格转换为 .csv 文件。在 Google 表格中,您可以通过以下路径操作:文件 -> 下载 -> 逗号分隔值。

将 .csv 文件导入 PostgreSQL 数据库

现在,要把刚刚创建的 .csv 文件导入 PostgreSQL,您首先需要一个 PostgreSQL 数据库。我们使用 pgAdmin 界面快速创建一个。

您可以按自己的喜好创建任意名称的数据库。完成后,需要在该数据库中创建一张表,用于存放将要导入的 .csv 文件中的记录。我们在您刚创建的数据库中建立一张名为 Student_Records 的表。

CREATE TABLE Student_Records
(
  ID serial NOT NULL,
  Name varchar(50),
  Age SMALLINT,
  Percentage_Marks float8
);

您沿用了上文讨论过的各列数据类型。为方便起见,也保持了相同的列名。现在在 pgAdmin 中导航到刚创建的表,右键该表并从选项中选择 Import。供您参考:https://www.loom.com/share/2eeb1a2c94bf4f928c3ffa5b1b72eef4。

您可以忽略在导入过程中于演示视频中出现的错误。可以通过运行 select 查询来验证记录是否已正确导入。

现在我们来看如何在 psql 提示符中完成上述操作。为此,先使用 truncate table Student_Records; 语句清空 Student_Records 表。

接着,打开一个 psql 提示符,界面应类似于:psql prompt

然后切换到您最初为导入电子表格而创建的数据库。在 PostgreSQL 中可使用以下命令切换数据库:

\c database_name

如果切换成功,psql 提示符会变为您指定的数据库名称。现在可以执行以下命令,将 .csv 文件导入 Students_Records 表:

COPY Student_Records(ID,Name,Age,Percentage_Marks) FROM 'D:\Students.csv' DELIMITER ',' CSV HEADER;

随后执行一条 select 查询,验证导入是否正确完成。

您可以从这里进一步了解 Copy 命令,并尝试其不同选项。

总结

本教程到此结束。现在,您可以将电子表格导入 PostgreSQL,并像处理标准 SQL 表那样对其进行分析。

主题