Skip to main content
 首页 » 数据库

PostgreSQL 从 csv 文件导入数据

2022年07月19日250飞鱼

本文我们学习如何把csv数据文件导入至PostgreSQL中。

创建实例表和数据

首先创建persons表,包括五个字段:

  • id
  • first_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数据文件persons.csv:

First Name,Last Name,Date Of Birth,Email 
John,Doe,1995-01-05,john.doe@postgresqltutorial.com 
Jane,Doe,1995-02-05,jane.doe@postgresqltutorial.com 
 

导入csv文件

psql -U postgres -- 使用postgres 用户登录本地数据库 
-- 输入口令成功登录 
postgres=# \c test   
-- 您现在已经连接到数据库 "test",用户 "postgres". 
test=# copy persons(first_name,last_name,dob,email) from 'd:\persons.csv' delimiter ',' csv header; 
-- COPY 2  

执行 select * from persons 验证结果:

id first_name last_name dob email
1 John Doe 1995-01-05 john.doe@postgresqltutorial.com
2 Jane Doe 1995-02-05 jane.doe@postgresqltutorial.com

导入csv过程说明

首先在copy关键字后面指定表和列名称,列的顺序必须和csv文件中列保持一致。如csv文件包括所有列,则不需要显示指定列:

copy persons from 'd:\persons.csv' delimiter ',' csv header; 

其次,在from后面指定csv文件。要导入csv文件,同时也要指定 delimitercsv 子句。

第三,header 关键字 指明CSV文件是否包括记录头信息行,让copy命令忽略文件首行记录。

最后需要提醒的是,文件必须能被PostgreSQL服务器能直接读取,不是在客户端上读取。因此需要PostgreSQL服务器能直接访问,另外也需要有数据库管理员权限可以执行copy命令。另外我们也可以通过客户端工具(如,pgAdmin)导入csv文件,这里不再赘述,读者可以搜索相关文档。


本文参考链接:https://blog.csdn.net/neweastsun/article/details/119141482
阅读延展