实际的工作中,我们经常会碰到统计数据的工作,有些维度的统计数据因为工作需要我们需要导出为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 |
- 50岁的人除了跑步快走 老年人的性功能如何维持
- 血氧仪|1380元血氧仪成本仅几十块是真的吗 如何看待血氧仪涨价
- 烤箱|如何用烤箱烤红薯 烤红薯注意事项
- 中医如何做到两者兼顾养生调理 阴虚和阳虚同时存在吃什么药
- 老大|老大就该让着弟弟妹妹吗 生二胎如何考虑大宝的感受
- 甲状腺疾病该如何治疗 艾灸图片高清图片大全
- 中医是如何治疗传染病的 八个偏方治好尿毒症
- 如何看一块石头里面有没有玉 怎么判断是玉还是石头
- 中医也无法根治糖尿病吗 糖尿病如何治疗哪种好用
- 菜板|菜板发霉怎么办 如何清洁砧板霉菌
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
