九月 15, 2023
摘要:在本教程中,我们将向您展示将 CSV 文件导入 PostgreSQL 表的各种方法。
目录
准备工作
首先,创建一个新表,名为persons
,包含以下的列:
id
: 人的 idfirst_name
: 名字last_name
: 姓氏dob
: 出生日期email
: 电子邮件地址
CREATE TABLE persons (
id SERIAL,
first_name VARCHAR(50),
last_name VARCHAR(50),
dob DATE,
email VARCHAR(255),
PRIMARY KEY (id)
)
其次,准备一个具有以下格式的 CSV 数据文件:
CSV 文件的路径为C:\sampledb\persons.csv
,如下:
使用 COPY 语句将 CSV 文件导入表中
要将此 CSV 文件导入persons
表中,请使用COPY
语句,如下:
COPY persons(first_name, last_name, dob, email)
FROM 'C:\sampledb\persons.csv'
DELIMITER ','
CSV HEADER;
PostgreSQL 返回以下消息:
COPY 2
这意味着已经复制了两行。我们来查一下persons
表。
SELECT * FROM persons;
它按预期工作。
让我们更详细地了解 COPY 语句。
首先,在COPY
关键字后面指定带有一些列名称的表。列的顺序必须与 CSV 文件中的顺序相同。如果 CSV 文件包含表的所有列,则无需显式指定它们,例如:
COPY sample_table_name
FROM 'C:\sampledb\sample_data.csv'
DELIMITER ','
CSV HEADER;
其次,将 CSV 文件路径放在FROM
关键字后面。由于使用 CSV 文件格式,因此需要指定DELIMITER
以及CSV
子句。
第三,指定HEADER
关键字以指示 CSV 文件包含标头。当COPY
命令导入数据时,它会忽略文件头。
请注意,该文件必须由 PostgreSQL 服务器直接读取,而不是由客户端应用程序读取。因此,它必须可由 PostgreSQL 服务器计算机访问。此外,您需要具有超级用户访问权限才能成功执行COPY
语句。
使用 pgAdmin 将 CSV 文件导入表中
如果您需要将 CSV 文件从计算机导入到 PostgreSQL 数据库服务器上的表中,可以使用 pgAdmin。
以下语句截断persons
表,以便您可以重新导入数据。
TRUNCATE TABLE persons
RESTART IDENTITY;
首先,右键单击persons
表并选择**导入/导出…**菜单项:
其次,(1) 切换到导入,(2) 浏览到导入文件,(3) 选择格式为 CSV,(4) 选择分隔符为逗号 (,
):
第三,单击列选项卡,取消选中 id 列,然后单击确定按钮:
最后,等待导入过程完成。下面显示了通知您导入进度的对话框:
在本教程中,您学习了如何使用COPY
语句和 pgAdmin 工具,将数据从 CSV 文件导入到 PostgreSQL 数据库服务器上的表中。