本文我们学习如何把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 验证结果:

idfirst_namelast_namedobemail
1JohnDoe1995-01-05john.doe@postgresqltutorial.com
2JaneDoe1995-02-05jane.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文件,这里不再赘述,读者可以搜索相关文档。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐