如何将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:冻结数据,然后执行VACUUMFREEZE。
DELIMITER:指在导出文件时的分隔符指定需要用单引号。在TEXT时默认为tab,CSV文件默认是逗号。不支持binary文件格式。
HEADER:指在复制到文件时带上表字段名称。
NULL:指定null值,默认为\N。
QUOTE:声明CSV模式里的引号字符,缺省是双引号。
ESACPE:指定转义符,缺省是QUOTE值(通常是双引号)。
ENCODING:指定文件的编码,如果没有指定就默认使用客户端的字符集。
3、使用示例
①编辑excel表格,填充测试数据,表格的保存格式为csv格式,编码原则为UTF-8,逗号分隔。
②将excel表格上传至数据库服务器,根据表格字段创建对应表。
postgres=#createtablemovie_star(user_idint,user_namevarchar(100),ageint,gendertext,addressvarchar(100),remarktext); CREATETABLE postgres=# postgres=# postgres=# postgres=#select*frommovie_star; user_id|user_name|age|gender|address|remark ---------+-----------+-----+--------+---------+-------- (0rows)
③使用copy命令导入excel数据。
postgres=#copymovie_starfrom'/pg/movie_star.csv'withcsvheader; COPY9 postgres=# postgres=#select*frommovie_star; user_id|user_name|age|gender|address|remark ---------+---------------+-----+--------+-------------------+------------------------------------------ 1|JackieChan|45|male|HK,CHINA,ASIA|policestoryprojectArushhour 2|GongLi|38|female|"Singapore",ASIA|FarewellMyConcubineLifetimesLiving 3|BrigitteLin|46|female|HK,CHINA,ASIA| 4|MaggieCheung|39|female|HK,CHINA,ASIA| 5|JetLi|41|male|"Singapore",ASIA|FistofLegendOnceUponaTimeinChina 6|JackyCheung|35|male|HK,CHINA,ASIA| 7|ChowYunFat|48|male|HK,CHINA,ASIA| 8|DonnieYen|36|male|HK,CHINA,ASIA| 9|StephenChow|40|male|HK,CHINA,ASIA|
④查看上传至服务器内的excel表格数据
postgres=#\!cat/pg/movie_star.csv user_id,user_name,age,gender,address,remark 1,JackieChan,45,male,"HK,CHINA,ASIA",policestoryprojectArushhour 2,GongLi,38,female,"""Singapore"",ASIA",FarewellMyConcubineLifetimesLiving 3,BrigitteLin,46,female,"HK,CHINA,ASIA", 4,MaggieCheung,39,female,"HK,CHINA,ASIA", 5,JetLi,41,male,"""Singapore"",ASIA",FistofLegendOnceUponaTimeinChina 6,JackyCheung,35,male,"HK,CHINA,ASIA", 7,ChowYunFat,48,male,"HK,CHINA,ASIA", 8,DonnieYen,36,male,"HK,CHINA,ASIA", 9,StephenChow,40,male,"HK,CHINA,ASIA",
通过在excel表格我们可以看到,将excel表格保存为csv格式(UTF-8,逗号分隔)后,系统自动对表格内的数据进行了格式转换,部分字段内加入了转义符,比如双引号,逗号等,避免了数据导入出错。
到此这篇关于如何将excel表格数据导入postgresql数据库的文章就介绍到这了,更多相关excel表格数据导入postgresql数据库内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。