如何将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表格数据导入postgresql数据库如何将excel表格数据导入postgresql数据库

②将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,逗号分隔)后,系统自动对表格内的数据进行了格式转换,部分字段内加入了转义符,比如双引号,逗号等,避免了数据导入出错。

文章来源:脚本之家

来源地址:https://www.jb51.net/article/206923.htm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/894372.html

(0)
上一篇 2025年1月4日 00:03:52
下一篇 2025年1月4日 00:04:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • SQLite 中文指南之FAQ第1/6页

    sqllite使用过程中碰到的一些问题解决,中文版 1. 如何创建自增字段? 2. SQLite 支持哪些数据类型? 3. 为什么能向 SQLite 数据库的整型字段中插入字符串? 4. 为什么 SQLite 认为表达式 ‘0&…

    数据库 2025年1月4日
    100
  • Access创建一个简单MIS管理系统

    所谓MIS管理系统,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。MIS管理系统是一种新兴的技术,那么下文中就给大家介绍Access这个有历史的数据库系统如何创建一个简单的MIS管理系统。 M…

    数据库 2025年1月4日
    100
  • 读取注册表根据Office版本获取数据库连接字段

    本节主要介绍了如何根据Office版本获取数据库连接字段,以读取注册表获取Office版本,实现代码如下,感兴趣的朋友不要错过 /// /// 读取注册表,根据Office版本获取数据库连接字段 /// /// 数据库连接字段 privat…

    数据库 2025年1月4日
    100
  • PostgreSQL操作符实践技巧分享

    这篇文章主要给大家介绍了关于PostgreSQL基础知识之SQL操作符实践的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PostgreSQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 前言 操作符是数据库具有的…

    2025年1月4日
    100
  • SQL Server如何通过创建临时表遍历更新数据详解

    这篇文章主要给大家介绍了关于SQL Server如何通过创建临时表遍历更新数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 前言: 前段时间新项目上线为了赶…

    2025年1月4日
    100
  • Mac系统重置PostgreSQL密码技巧及代码展示

    PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。这篇文章主要介绍了Mac系统重置PostgreSQL密码的方法示例代码,需要的朋友可以参考下 PostgreSQL是一种特性非常齐全的自由…

    数据库 2025年1月4日
    100
  • PostgreSQL技巧分享:图(graph)的递归查询实例

    这篇文章主要给大家介绍了关于PostgreSQL图(graph)的递归查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PostgreSQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 背景 在树形递归查询这篇文…

    2025年1月4日
    100
  • PostgreSQL技巧 如何获取当前日期时间

    这篇文章主要介绍了PostgreSQL 如何获取当前日期时间及注意事项,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 在开发数据库应用或者调试代码时,经常需要获取系统的…

    数据库 2025年1月4日
    100
  • postgresql中的ltree类型使用技巧

    这篇文章主要给大家介绍了关于postgresql中ltree类型使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用postgresql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 postgresql有很多比较妖…

    2025年1月4日
    100
  • MongoDB通配符索引的用法实例

    这篇文章主要给大家介绍了关于MongoDB通配符索引的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 指南 MongoDB在4.2 版本推出了Wildcard …

    数据库 2025年1月4日
    100

发表回复

登录后才能评论

联系我们

156-6553-5169

在线咨询: QQ交谈

邮件:253000106@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

联系微信