PostgreSQL 从 csv 文件导入数据
本文我们学习如何把csv数据文件导入至PostgreSQL中。创建实例表和数据首先创建persons表,包括五个字段:idfirst_namelast_namedob : 出生日期emailCREATE TABLE persons (id SERIAL,first_name VARCHAR(50),last_name VARCHAR(50),dob DATE,email VARCHAR(255),
·
本文我们学习如何把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文件,这里不再赘述,读者可以搜索相关文档。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)