• 售前

  • 售后

热门帖子
入门百科

怎样将excel表格数据导入postgresql数据库

[复制链接]
米老鼠和蓝精鼠v 显示全部楼层 发表于 2021-8-14 14:39:09 |阅读模式 打印 上一主题 下一主题
实际的工作中,我们常常会碰到统计数据的工作,有些维度的统计数据由于工作必要我们必要导出为excel作为报表附件供不同的部分审查。为了方便以后的对比工作,领导会让在数据库中创建一张表,用于专门纪录这些数据。此时我们DBA必要将这些excel表格导入到数据库中,copy和\copy下令为我们提供了办理办法,本文紧张通过copy下令的使用,介绍如何将excel表格导入至数据库中。关于copy及\copy下令的区别,请广大博友通过另一篇文章《如何将postgresql数据库表内数据导出为excel格式》查看。
1、copy基本语法
  1. COPY { 表名 [ ( 列名称 [, ...] ) ]
  2. from { '文件名' | PROGRAM '命令' | STDIN }
  3. [ [ WITH ] ( 选项 [, ...] ) ]
  4. 选项可以是下列内容之一
  5. FORMAT 格式_名称
  6. FREEZE [ 布尔 ]
  7. DELIMITER '分隔字符'
  8. NULL '空字符串'
  9. HEADER [ 布尔 ]
  10. QUOTE '引用字符'
  11. ESCAPE '转义字符'
  12. FORCE_QUOTE { ( 列名称 [, ...] ) | * }
  13. FORCE_NOT_NULL ( 列名称 [, ...] )
  14. ENCODING 'encoding_name(编码名)'
复制代码
2、参数寄义介绍
  1. FORMAT:指复制到文件的文件类型,如:CSV,TEXT。  
  2. FREEZE :冻结数据,然后执行VACUUM FREEZE。 
  3. DELIMITER:指在导出文件时的分隔符指定需要用单引号。在TEXT时默认为tab,CSV文件默认是逗号。不支持binary文件格式。 
  4. HEADER:指在复制到文件时带上表字段名称。 
  5. NULL:指定null值,默认为\N。 
  6. QUOTE: 声明 CSV 模式里的引号字符,缺省是双引号。
  7. ESACPE: 指定转义符,缺省是 QUOTE 值(通常是双引号)。
  8. ENCODING:指定文件的编码,如果没有指定就默认使用客户端的字符集。
复制代码
3、使用示例
①编辑excel表格,添补测试数据,表格的保存格式为csv格式,编码原则为UTF-8,逗号分隔。


②将excel表格上传至数据库服务器,根据表格字段创建对应表。
  1. postgres=# create table movie_star(user_id int,user_name varchar(100),age int,gender text,address varchar(100),remark text);
  2. CREATE TABLE
  3. postgres=#
  4. postgres=#
  5. postgres=#
  6. postgres=# select * from movie_star ;
  7. user_id | user_name | age | gender | address | remark
  8. ---------+-----------+-----+--------+---------+--------
  9. (0 rows)
复制代码
③使用copy下令导入excel数据。
  1. postgres=# copy movie_star from '/pg/movie_star.csv' with csv header;
  2. COPY 9
  3. postgres=#
  4. postgres=# select * from movie_star ;
  5. user_id | user_name | age | gender | address |   remark   
  6. ---------+---------------+-----+--------+-------------------+------------------------------------------
  7. 1 | Jackie Chan | 45 | male | HK,CHINA,ASIA | police story project A rush hour
  8. 2 | Gong Li | 38 | female | "Singapore",ASIA | Farewell My Concubine Lifetimes Living
  9. 3 | Brigitte Lin | 46 | female | HK,CHINA,ASIA |
  10. 4 | Maggie Cheung | 39 | female | HK,CHINA,ASIA |
  11. 5 | Jet Li | 41 | male | "Singapore",ASIA | Fist of LegendOnce Upon a Time in China
  12. 6 | Jacky Cheung | 35 | male | HK,CHINA,ASIA |
  13. 7 | Chow Yun Fat | 48 | male | HK,CHINA,ASIA |
  14. 8 | Donnie Yen | 36 | male | HK,CHINA,ASIA |
  15. 9 | Stephen Chow | 40 | male | HK,CHINA,ASIA |
复制代码
④查看上传至服务器内的excel表格数据
  1. postgres=# \! cat /pg/movie_star.csv
  2. user_id,user_name,age,gender,address,remark
  3. 1,Jackie Chan,45,male,"HK,CHINA,ASIA ",police story project A rush hour
  4. 2,Gong Li,38,female," ""Singapore"",ASIA", Farewell My Concubine Lifetimes Living
  5. 3,Brigitte Lin,46,female," HK,CHINA,ASIA",
  6. 4,Maggie Cheung,39,female,"HK,CHINA,ASIA ",
  7. 5,Jet Li,41,male,"""Singapore"",ASIA", Fist of LegendOnce Upon a Time in China
  8. 6,Jacky Cheung ,35,male,"HK,CHINA,ASIA",
  9. 7,Chow Yun Fat,48,male,"HK,CHINA,ASIA",
  10. 8, Donnie Yen,36,male,"HK,CHINA,ASIA",
  11. 9,Stephen Chow,40,male,"HK,CHINA,ASIA",
复制代码
通过在excel表格我们可以看到,将excel表格保存为csv格式(UTF-8,逗号分隔)后,体系自动对表格内的数据进行了格式转换,部分字段内参加了转义符,比如双引号,逗号等,避免了数据导入出错。
到此这篇关于如何将excel表格数据导入postgresql数据库的文章就介绍到这了,更多相关excel表格数据导入postgresql数据库内容请搜索脚本之家从前的文章或继续欣赏下面的相关文章盼望各人以后多多支持脚本之家!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作