https://www.postgresql.org/docs/current/static/sql-copy.html

一、Copy的基本语法

Copy的作用是复制数据在数据表和文件之间。

Copy在PostgreSql中的语法是(来自文档):

1、  将文件中的数据复制到表中:

COPY table_name [ ( column_name [, ...] ) ]

FROM { 'filename' | PROGRAM 'command' | STDIN }

[ [ WITH ] ( option [, ...] ) ]

2、将表中的数据复制到文件中:

COPY { table_name [ ( column_name [, ...] )] | ( query ) }

TO{ 'filename' | PROGRAM 'command' | STDOUT }

[[ WITH ] ( option [, ...] ) ]

其中option的设置的参数如下:

FORMAT format_name

OIDS [ boolean ]

FREEZE [ boolean ]

DELIMITER 'delimiter_character'

NULL 'null_string'

HEADER [ boolean ]

QUOTE 'quote_character'

ESCAPE 'escape_character'

FORCE_QUOTE { ( column_name [, ...] ) | * }

FORCE_NOT_NULL ( column_name [, ...] )

ENCODING 'encoding_name'

二、Copy的参数解释和示例

FORMAT:指复制到文件的文件类型,如:CSV,TEXT。

OIDS  :指复制到文件时带上oid,但是当某个表没有oid时就会出错。

FREEZE :冻结数据,然后执行VACUUM FREEZE。

DELIMITER:指在导出文件时的分隔符指定需要用单引号。在TEXT时默认为tab,CSV文件默认是逗号。不支持binary文件格式。

HEADER:指在复制到文件时带上表字段名称。

NULL:指定null值,默认为\N。

ENCODING:指定文件的编码,如果没有指定就默认使用客户端的字符集。

STDIN:指的是客户端程序的输入流。

STDOUT:指向是客户端的输出流。

在执行COPY FROM时table_name就需要实际存在的表,其中字段是可以自选的,如:

1.         COPYemp(ename) FROM “E://emp.txt”

需要注意的是字段类型要匹配并且文件也只要一个字段的值。

2.         COPYemp FROM “E://emp.txt”

文件中需要包含emp表中的字段的值,或tab,或‘,’等分割开的数据

在执行COPY TO时的一些注意,解释和示例:

1.         COPYemp TO STDOUT (DELIMITER ‘|’)

指的是输出在客户端并且以‘|’为分隔符

2.         COPY (select* from emp) TO ‘E://emp.csv’ (FORMAT ‘CSV’,DELIMITER ‘|’,HEADER true,NULL ‘’’’’’)

Table_name是可以为动态视图的,并且在后面的括号中参数可以包含多个,多个参数以逗号分隔开。HERDER的值可以使true,false,1,0,on,off,需要注意的是HERDER参数只有在FORMAT为CSV时生效。

3.         COPY empTO PROGRAM ‘zip > E://emp.zip’

参数PROGRAM指的是使用操作系统内部的程序对输出文件进行加工,上面的作用是将emp导出并且压缩。

COPY操作其不仅仅在命令行中可以执行,在IDE的工具中也可以执行如其自带的pgadmin3。

postgresql的copy的更多相关文章

  1. Postgresql VACUUM COPY等

    1.VACUUM VACUUM回收dead tuples占用的存储空间. 在一般的PostgreSQL操作中,被update操作删除或废弃的元组不会从物理表中删除; 它们一直存在,直到执行VACUUM ...

  2. postgresql copy命令介绍

    COPY 命令可以快速的导入数据到postgresql数据库中,文件格式类似TXT.CVS之类.适合批量导入数据,速度比较快.注意COPY只能用于表,不能用于视图. COPY 命令里面的文件必须是由服 ...

  3. postgresql学习笔记--基础篇 - copy

    1. psql 导入/导出数据 psql支持文件数据导入到数据库,也支持数据库表数据导出到文件中. COPY命令和\copy 命令都支持这两类操作,但两者有如下区别: COPY 命令是SQL命令,\c ...

  4. MySQL和PostgreSQL 导入数据对照

    在虚拟机上測评了下MySQL 和 PostgreSQL 的各种LOAD FILE方式以及时间. 由于是虚拟机上的測评,所以时间仅仅做參考,不要太较真, 看看就好了.MySQL 工具:    1. 自带 ...

  5. 使用copy函数完成数据库迁移

    最近在该一个迁移工具的迁移方式,从ora8迁移到postgresql使用原来的插入迁移速度太慢了,老板说让使用缓存迁移,即使用postgresql的copy函数,因此去pg官网查阅了相关资料,我们需要 ...

  6. Postgresql快速写入/读取大量数据(.net)

    环境及测试 使用.net驱动npgsql连接post数据库.配置:win10 x64, i5-4590, 16G DDR3, SSD 850EVO. postgresql 9.6.3,数据库与数据都安 ...

  7. net快速写入/读取大量数据Postgresql

    Postgresql快速写入/读取大量数据 http://www.cnblogs.com/podolski/p/7152144.html 环境及测试 使用.net驱动npgsql连接post数据库.配 ...

  8. Citus 分布式 PostgreSQL 集群 - SQL Reference(摄取、修改数据 DML)

    插入数据 要将数据插入分布式表,您可以使用标准 PostgreSQL INSERT 命令.例如,我们从 Github 存档数据集中随机选择两行. INSERT http://www.postgresq ...

  9. Using Recursive Common table expressions to represent Tree structures

    http://www.postgresonline.com/journal/archives/131-Using-Recursive-Common-table-expressions-to-repre ...

随机推荐

  1. linux下精确替换某个字符串

    1.linux下精确替换某个字符串 sed -i 's/\<old\>/new/g' filename.txt 2.举例: 2.1有个文件名为filename.txt,内容如下: newd ...

  2. SQL NULL

    表 select CHARACTER_MAXIMUM_LENGTH from information_schema.columns where table_name= 'Alliance' selec ...

  3. centos 安装iftop

    iftop是linux下的一个流量监控工具,用于查看实时网络流量.官网:http://www.ex-parrot.com/pdw/iftop/ 1.安装必须软件包yum install libpcap ...

  4. 【Map】Echarts之iphone销量地图的使用以及详细配置

    1.引入echarts库文件 <script charset="utf-8" type="text/javascript" language=" ...

  5. 【分词器及自定义】Elasticsearch中文分词器及自定义分词器

    中文分词器 在lunix下执行下列命令,可以看到本来应该按照中文”北京大学”来查询结果es将其分拆为”北”,”京”,”大”,”学”四个汉字,这显然不符合我的预期.这是因为Es默认的是英文分词器我需要为 ...

  6. [bzoj 1616][Usaco2008 Mar]Cow Travelling游荡的奶牛

    题目描述 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草.Farmer John在某个时刻看见 ...

  7. 创建标签等操作DOM的原生js API

    ()创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节点 ...

  8. redis教程(The little redis book中文版)

    许可证 <The Little Redis Book>是经由Attribution-NonCommercial 3.0 Unported license许可的,你不需要为此书付钱. 你可以 ...

  9. Ubuntu 关闭防火墙

    关闭防火墙:service iptables stop

  10. JSONObject获取的值有时候不是String类型,而有时候又是String类型,怎么办呐

    { "weatherinfo": { "city": "深圳", "cityid": "101280601&q ...