如何将excel表格数据导入postgresql数据库
  • 作者:admin
  • 发表时间:2021-04-24 07:52
  • 来源:未知

在实际工作中,我们经常会遇到统计数据的工作。有些维度的统计数据需要导出到excel作为报表附件,供不同部门审核。为了方便以后的比对工作,领导会在数据库中创建一个表专门记录数据。此时我们DBA需要将这些excel表导入数据库,copy和\copy命令为我们提供了解决方案。主要介绍如何利用copy命令将excel表格导入数据库。关于copy和\copy命令的区别,请通过另一篇文章《如何将postgresql数据库表内数据导出为excel格式》查看。

1.复制的基本语法

复制{表名[(列名[,])]

From { '文件名' | PROGRAMME '命令' | STDIN}

[[WITH](选项[,])]

选项可以是以下选项之一

FORMAT format _ name

冻结[布尔]

分隔符'分隔符'

空'空字符串'

HEADER[布尔值]

引用字符

转义字符

FORCE_QUOTE {(列名[,]) | *}

强制_非_空(列名[,])

编码“encoding_name”

2.参数含义介绍

FORMAT:指复制到文件中的文件类型,如CSV和文本。

冻结:冻结数据,然后执行真空冻结。

分隔符:导出文件时,分隔符指定需要单引号。在TEXT中,默认为tab,CSV文件默认为逗号。不支持二进制文件格式。

HEADER:指复制到文件时表的字段名。

NULL:指定一个空值,默认值为\ n。

QUOTE:在CSV模式下声明引号字符,默认为双引号。

ESACPE:指定转义字符,默认值为QUOTE值(通常是双引号)。

编码:指定文件的编码。如果未指定,默认情况下将使用客户端的字符集。

3.用例子

(1)编辑excel表格并填写测试数据。表单的保存格式是csv格式,编码原则是UTF-8,用逗号分隔。

(2)将excel表单上传到数据库服务器,根据表单字段创建相应的表单。

postgres=# create table movie _ star(user _ id int,user_name varchar(100),age int,gender text,address varchar(100),备注text);

创建表格

postgres=#

postgres=#

postgres=#

postgres=# select * from movie _ star;

user_id | user_name |年龄|性别|地址|备注

- - - - - -

(0行)

使用copy命令导入excel数据。

postgres=# copy movie _ star from '/pg/movie _ star . csv '带CSV头;

COPY 9

postgres=#

postgres=# select * from movie _ star;

user_id | user_name |年龄|性别|地址|备注

- - - - - -

1 |成龙| 45 |男|中国香港,亚洲|警察故事项目高峰时间