postgresql提供COPY命令用于表与文件(和标准输出,标准输入)之间的相互拷贝,copy to由表至文件,copy from由文件至表。

示例1.将整张表拷贝至标准输出

test=# copy tbl_test1 to stdout;
1    HA    12
2    ha    543

示例2.将表的部分字段拷贝至标准输出,并输出字段名称,字段间使用','分隔

test=# copy tbl_test1(a,b) to stdout delimiter ',' csv header;
a,b
1,HA
2,ha

示例3.将查询结果拷贝至标准输出

test=# copy (select a,b from tbl_test1 except select e,f from tbl_test2 ) to stdout delimiter ',' quote '"' csv header;
a,b
2,ha

将标准输入拷贝至表中需要注意几点

1.字段间分隔符默认使用【Tab】键

2.换行使用回车键

3.结束使用反斜线+英文据点(\.)

4.最好指定字段顺序,要不然可能会错位赋值

示例4.将标准输入拷贝至表中

test=# copy tbl_test1(a,b,c) from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 1    公举    公主
>> 2    万岁    万万岁
>> \.
COPY 2
test=# select * from tbl_test1 ;a |  b   |   c
---+------+--------1 | HA   | 122 | ha   | 5431 | 公举 | 公主2 | 万岁 | 万万岁
(4 rows)

示例5.从标准输入拷贝至表中,并将标准输入第一行作为字段名(和表中不符也没关系,copy会自动忽略第一行),字段分隔符为','

test=# copy tbl_test1(a,b,c) from stdin delimiter ',' csv header;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> a,b,c
>> 3,你好,hello
>> 4,超人,super
>> \.
COPY 2
test=# select * from tbl_test1 ;a |  b   |   c
---+------+--------1 | HA   | 122 | ha   | 5431 | 公举 | 公主2 | 万岁 | 万万岁3 | 你好 | hello4 | 超人 | super
(6 rows)

以上是表与标准输出和标准输入间的相互拷贝,表与文件的拷贝和以上完全相同,只是将标准输出和标准输入换成文件。需要注意的是:

1.数据库用户必须有文件所在的路径的写权限。

2.如果表存在中文字符,导出至csv文件时需要设置编码为GBK,否则使用excel打开是中文显示乱码。

3.将文件导入表中时仍要考虑编码问题

示例6.将表拷贝至csv文件中

test=# copy tbl_test1 to '/tmp/tbl_test1.csv' delimiter ',' csv header;
COPY 6

使用excel打开文件,中文显示为乱码

示例7. 将表以GBK编码拷贝至csv文件中

test=# copy tbl_test1 to '/tmp/tbl_test1.csv' delimiter ',' csv header encoding 'GBK';
COPY 6

使用excel打开,中文显示正常

示例8.将刚才导出的文件再次拷贝至表中,使用默认编码UTF8

test=# copy tbl_test1(a,b,c) from '/tmp/tbl_test1.csv' delimiter ',' csv header;
ERROR:  invalid byte sequence for encoding "UTF8": 0xb9
CONTEXT:  COPY tbl_test1, line 4

示例9.将刚才导出的文件再次拷贝至表中,使用GBK编码

test=# copy tbl_test1(a,b,c) from '/tmp/tbl_test1.csv' delimiter ',' csv header encoding 'GBK';
COPY 6

PostgreSql Copy之表与文件之间的拷贝相关推荐

  1. 文件之间的拷贝(拷贝图片实例)java.io.FileNotFoundException: G:\dad (拒绝访问。)通过绝对路径获取各种文件名

    1.报错解决 :java.io.FileNotFoundException: G:\dad (拒绝访问.) 参考文献:(364条消息) java.io.FileNotFoundException:(拒 ...

  2. PostgreSQL COPY命令

    COPY Name COPY -- 在表和文件之间拷贝数据 Synopsis COPY table_name [ ( column [, ...] ) ]FROM { 'filename' | STD ...

  3. ORACLE数据库、表空间、数据文件之间的关系

    完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Ora ...

  4. postgresql copy from、copy to

    postgresql的copy命令用来在文件和表之间进行数据复制,复制效率很高. 官方提供了命令行的copy命令以及Java封装的copy,下文将分别介绍说明. 命令行copy copy有两个命令:C ...

  5. 修改oracle的表空间文件scn,分享:bbed修改数据文件头推进scn与其他数据文件相同...

    场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据文件不一致. 场景构造: 1.创建测试表空间 SYS@orser> ...

  6. PostgreSQL 基础模块---表和元组组织方式

    参考资料 <PostgreSQL数据库内核分析> 彭智勇 彭煜玮:P58~P60 概述 PostgreSQL是堆表,其中每个文件由多个块组成,块在物理磁盘中的存储形式如下图所示: 块由4个 ...

  7. 利用python编写exe应用,实现excel文件输出建表sql文件。

    目录 一.excel文件内容如下: 二.生成如下sql: 三. 思路: 1.设计界面 2.界面分模块设计 2.1 模块一(数据库选择) 点击选择按钮会触发command后面的函数,同时会相应的返回va ...

  8. postgresql copy语句

    总述 copy命令用于在postgreSql表和标准文件系统直接传输数据. copy命令让PostgreSQL 服务器直接读写文件,因此文件必须位于服务器本地或能被直接访问. 该命令仅能在表上使用,不 ...

  9. PostgreSQL copy 命令教程

    报文介绍PostgreSQL copy 命令,通过示例展示把查询结果导出到csv文件,导入数据文件至postgresql. 1. copy命令介绍 copy命令用于在postgreSql表和标准文件系 ...

最新文章

  1. 构建聊天机器人:检索、seq2seq、RL、SeqGAN
  2. 隐马尔科夫模型(HMM)解释 和 前向与后向算法[转] 讲解通俗易懂 赞
  3. Apache Hive-1.2.1 Manual Patch and Compile
  4. mysql8.x非注册使用[{绿色使用]
  5. 静态库与动态库的制作
  6. Element-Ui 双重el-tabs组件选中第二层时,刷新导致第一层选中样式丢失问题以及解决方法
  7. oracle 中(+) 是什么意思
  8. Qtum量子链发布QIP-7:Qtum虚拟机升级,五大更新全面提升开发性能
  9. 操作的基本原则,每日必读【不断更新中】
  10. PostgreSQL 简介
  11. [资源分享][Unity][人物模型][动作]一些人物模型以及动作的分享
  12. mybatis 实现动态数据源连接
  13. c++ Lake Counting
  14. MySQL math函数
  15. Sentinel持久化
  16. 似然函数Likelihood function
  17. P4084 [USACO17DEC]Barn Painting
  18. C++使用ADODB连接数据库
  19. Matlab拆分矩阵/Matlab如何分割大矩阵(mat2cell函数)
  20. 三星v700刷android,三星SM-V700一键救砖教程,轻松刷回官方系统

热门文章

  1. freemarker+itext生成PDF文件
  2. (免费分享)基于jsp酒店管理系统(带论文)
  3. Failed to connect to github.com port 443 after 21060 ms Timed out
  4. 第十八届全国大学智能汽车竞赛报名信息统计:山东赛区报名队伍
  5. r生成新的dataframe_R 语言的Dataframe常用操作
  6. 视频SaaS是不是一个新资本故事?
  7. 基于微信小程序的劳务咨询系统设计与实现
  8. 上市欢庆后 阿里还有许多正事要做
  9. 在能源管控方面,「星图地球开发者平台」能做什么
  10. php js 比较大小写,jquery与js字母大小写转换与首字母大写