本文我们学习如何把csv数据文件导入至PostgreSQL中。
创建实例表和数据
首先创建persons表,包括五个字段:
- id
- first_name
- last_name
- dob : 出生日期
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 | |
---|---|---|---|---|
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文件,同时也要指定 delimiter
和 csv
子句。
第三,header
关键字 指明CSV文件是否包括记录头信息行,让copy命令忽略文件首行记录。
最后需要提醒的是,文件必须能被PostgreSQL服务器能直接读取,不是在客户端上读取。因此需要PostgreSQL服务器能直接访问,另外也需要有数据库管理员权限可以执行copy命令。另外我们也可以通过客户端工具(如,pgAdmin)导入csv文件,这里不再赘述,读者可以搜索相关文档。
本文参考链接:https://blog.csdn.net/neweastsun/article/details/119141482