如何将excel表格数据导入postgresql数据库

 更新时间:2021年03月05日 10:24:48   作者:瀚高PG实验室  
这篇文章主要介绍了如何将excel表格数据导入postgresql数据库,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

1、copy基本语法

COPY { 表名 [ ( 列名称 [, ...] ) ] 
from { '文件名' | PROGRAM '命令' | STDIN } 
 [ [ WITH ] ( 选项 [, ...] ) ]
 
选项可以是下列内容之一
 FORMAT 格式_名称 
 FREEZE [ 布尔 ] 
 DELIMITER '分隔字符' 
 NULL '空字符串' 
 HEADER [ 布尔 ] 
 QUOTE '引用字符' 
 ESCAPE '转义字符' 
 FORCE_QUOTE { ( 列名称 [, ...] ) | * } 
 FORCE_NOT_NULL ( 列名称 [, ...] ) 
 ENCODING 'encoding_name(编码名)'

2、参数含义介绍

FORMAT:指复制到文件的文件类型,如:CSV,TEXT。  
FREEZE :冻结数据,然后执行VACUUM FREEZE。 
DELIMITER:指在导出文件时的分隔符指定需要用单引号。在TEXT时默认为tab,CSV文件默认是逗号。不支持binary文件格式。 
HEADER:指在复制到文件时带上表字段名称。 
NULL:指定null值,默认为\N。 
QUOTE: 声明 CSV 模式里的引号字符,缺省是双引号。
ESACPE: 指定转义符,缺省是 QUOTE 值(通常是双引号)。
ENCODING:指定文件的编码,如果没有指定就默认使用客户端的字符集。

3、使用示例

①编辑excel表格,填充测试数据,表格的保存格式为csv格式,编码原则为UTF-8,逗号分隔。

②将excel表格上传至数据库服务器,根据表格字段创建对应表。

postgres=# create table movie_star(user_id int,user_name varchar(100),age int,gender text,address varchar(100),remark text);
CREATE TABLE
postgres=# 
postgres=# 
postgres=# 
postgres=# select * from movie_star ;
 user_id | user_name | age | gender | address | remark 
---------+-----------+-----+--------+---------+--------
(0 rows)

③使用copy命令导入excel数据。

postgres=# copy movie_star from '/pg/movie_star.csv' with csv header;
COPY 9
postgres=# 
postgres=# select * from movie_star ;
 user_id | user_name | age | gender | address |   remark   
---------+---------------+-----+--------+-------------------+------------------------------------------
 1 | Jackie Chan | 45 | male | HK,CHINA,ASIA | police story project A rush hour
 2 | Gong Li | 38 | female | "Singapore",ASIA | Farewell My Concubine Lifetimes Living
 3 | Brigitte Lin | 46 | female | HK,CHINA,ASIA | 
 4 | Maggie Cheung | 39 | female | HK,CHINA,ASIA | 
 5 | Jet Li | 41 | male | "Singapore",ASIA | Fist of LegendOnce Upon a Time in China
 6 | Jacky Cheung | 35 | male | HK,CHINA,ASIA | 
 7 | Chow Yun Fat | 48 | male | HK,CHINA,ASIA | 
 8 | Donnie Yen | 36 | male | HK,CHINA,ASIA | 
 9 | Stephen Chow | 40 | male | HK,CHINA,ASIA | 

④查看上传至服务器内的excel表格数据

postgres=# \! cat /pg/movie_star.csv
user_id,user_name,age,gender,address,remark
1,Jackie Chan,45,male,"HK,CHINA,ASIA ",police story project A rush hour
2,Gong Li,38,female," ""Singapore"",ASIA", Farewell My Concubine Lifetimes Living
3,Brigitte Lin,46,female," HK,CHINA,ASIA",
4,Maggie Cheung,39,female,"HK,CHINA,ASIA ",
5,Jet Li,41,male,"""Singapore"",ASIA", Fist of LegendOnce Upon a Time in China
6,Jacky Cheung ,35,male,"HK,CHINA,ASIA",
7,Chow Yun Fat,48,male,"HK,CHINA,ASIA",
8, Donnie Yen,36,male,"HK,CHINA,ASIA",
9,Stephen Chow,40,male,"HK,CHINA,ASIA",

通过在excel表格我们可以看到,将excel表格保存为csv格式(UTF-8,逗号分隔)后,系统自动对表格内的数据进行了格式转换,部分字段内加入了转义符,比如双引号,逗号等,避免了数据导入出错。

到此这篇关于如何将excel表格数据导入postgresql数据库的文章就介绍到这了,更多相关excel表格数据导入postgresql数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • postgresql数据库设置id自增的基本方法举例例子解析

    postgresql数据库设置id自增的基本方法举例例子解析

    这篇文章主要给大家介绍了关于postgresql数据库设置id自增的基本方法举例,文章介绍了在PostgreSQL中实现自增ID的两种方法,分别是使用序列和触发器,序列方法简单直接,而触发器和函数方法则提供了更大的灵活性,需要的朋友可以参考下
    2024-11-11
  • 在Linux系统上安装PostgreSQL数据库

    在Linux系统上安装PostgreSQL数据库

    这篇文章介绍了在Linux系统上安装PostgreSQL数据库的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • PostgreSQL操作json/jsonb方法详解

    PostgreSQL操作json/jsonb方法详解

    这篇文章主要给大家介绍了关于PostgreSQL操作json/jsonb的相关资料,PostgreSQL提供了两种存储JSON数据的类型:json和jsonb; jsonb是json的二进制形式,文中介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • 在PostgreSQL中实现数据的自动清理和过期清理

    在PostgreSQL中实现数据的自动清理和过期清理

    在 PostgreSQL 中,可以通过多种方式实现数据的自动清理和过期处理,以确保数据库不会因为存储过多过时或不再需要的数据而导致性能下降和存储空间浪费,本文给大家介绍了一些常见的方法及详细示例,需要的朋友可以参考下
    2024-07-07
  • PostgreSQL 数组类型操作使用及特点详解

    PostgreSQL 数组类型操作使用及特点详解

    这篇文章主要为大家介绍了PostgreSQL 数组类型操作使用及特点详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • PostgreSQL查看数据库占用空间大小的几种常用方法

    PostgreSQL查看数据库占用空间大小的几种常用方法

    在PostgreSQL中,查看数据库及数据表当前数据的占用量可以通过执行特定的SQL查询来实现,本文给大家介绍了几种常用的方法,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-05-05
  • PostgreSQL之连接失败的问题及解决

    PostgreSQL之连接失败的问题及解决

    这篇文章主要介绍了PostgreSQL之连接失败的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • PostgreSQL索引失效会发生什么

    PostgreSQL索引失效会发生什么

    什么是索引失效?如果where过滤条件设置不合理,即使索引存在,且where过滤条件中包含索引列,也会导致全表扫描,索引不起作用。什么条件下会导致索引失效呢
    2022-09-09
  • PostgreSQL使用MySQL外表的步骤详解(mysql_fdw)

    PostgreSQL使用MySQL外表的步骤详解(mysql_fdw)

    这篇文章主要介绍了PostgreSQL使用MySQL外表的步骤(mysql_fdw),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • PostgreSQL 查看服务器版本的三种方法

    PostgreSQL 查看服务器版本的三种方法

    这篇文章主要介绍了PostgreSQL 查看服务器版本的几种方法,本文给大家分享三种方法,结合实例代码给大家讲解的非常详细,需要的朋友可以参考下
    2023-03-03

最新评论