时间:2021-05-23
实际的工作中,我们经常会碰到统计数据的工作,有些维度的统计数据因为工作需要我们需要导出为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 TABLEpostgres=# 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 9postgres=# 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.csvuser_id,user_name,age,gender,address,remark1,Jackie Chan,45,male,"HK,CHINA,ASIA ",police story project A rush hour2,Gong Li,38,female," ""Singapore"",ASIA", Farewell My Concubine Lifetimes Living3,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 China6,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数据库内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
如何将PostgreSQL数据库迁入Oracle?PostgresToOracle是一款专业且实用的PostgreSQL数据库迁移到Oracle的辅助工具。小编
CAD如何将excel表格的数据导入并且实时更新? 1、CAD可以创建表格也可以将excel的表格直接导入,导入前我们做一个报价单的excel表格,然后找
Python操作Excle文件:使用xlwt库将数据写入Excel表格,使用xlrd库从Excel读取数据。从excle读取数据存入数据库1、导入模块:impo
在上篇文章给大家介绍了如何将postgresql数据库表内数据导出为excel格式(推荐)感兴趣的朋友点击查看。本文主要用于介绍如何使用copy或者\copy命
此次简单的操作将数据从数据库导出生成excel报表以及将excel数据导入数据库首先建立数据库的连接池:packagejdbc;importjava.io.Fi