本文主要介绍PostgreSQL copy命令教程的详细讲解,对于大家来说非常详细,对于大家的学习或者工作都有一定的参考价值。有需要的朋友可以参考一下。
介绍了postgresql的copy命令,并通过实例展示了查询结果到csv文件和数据文件到PostgreSQL的过程。
1. copy命令介绍
copy命令用于在postgreSql表和标准文件系统之间直接传输数据。copy命令允许PostgreSQL服务器直接读写文件,因此PostgreSQL用户必须能够访问文件。该命令使用的文件是数据库服务器直接读写的文件,而不是客户端应用的文件,所以必须是位于服务器本地或直接访问的文件,而不是客户端的位置。
copy命令将表内容复制到文件中,也可以复制select的查询结果;也就是说,如果在select之后列出了一些字段,则copy to命令只会将指定字段的结果复制到文件中。必须授予表Select权限才能使用复制到命令。该命令只能用于表,不能用于视图。当我们需要复制视图的内容时,我们可以向copy命令发送sql查询:
复制(SELECT * FROM country)到' list _ countries . COPY ';
复制自将文件的数据复制到数据表。使用“复制自”时,文件中的每个字段都按I-order插入到特定字段中。如果在这个命令中没有指定表的列参数,则获取它们的缺省值。使用copy from命令的表必须被授予insert权限。
不要混淆psql中的复制命令和\复制。\copy调用COPY FROM STDIN或COPY TO STDOUT,然后返回数据或存储psql客户端可以访问的文件数据。因此,使用\copy时,文件的可访问性和访问权限取决于客户端,而不是服务器。
2. copy命令示例
2.1从Postgresql导出表
我们可以将表格复制到控制台,并使用竖线(|)作为字段的直接分隔符:
将客户复制到标准输出(分隔符“|”)
将表格复制到文件中,使用空格作为字段的直接分隔符:
将客户复制到“/database/data/test_data.copy”(分隔符“”);
2.2将文件导入Postgresql表
将文件传递到现有表中:
从“/database/data/test_data.copy”(分隔符“”)中复制客户;
2.3将查询结果导出到文件中
将查询结果导出到文件:
复制(SELECT * FROM customers WHERE name LIKE ' A % ')到'/data/test _ data . COPY ';
如果需要压缩数据,请使用以下命令:
将客户复制到程序' gzip/data/test _ data . COPY . gz ';
如果只导出2列,请使用以下命令:
将customers(col,col2)复制到“/data/test_data.copy”分隔符“”;
如果需要导出二进制文件:
用二进制将客户复制到“e:/data.dat”中;
导出csv文件:
用csv将客户复制到‘e:/data . CSV’中;
Csv文件有一些其他参数:
DELIMITER分隔数据行中每个字段的分隔符。Csv文件一般使用逗号。
HEADER指定csv文件的标题。如果不需要标题行,可以忽略页眉。
从'/data/test_data.copy '带分隔符',' CSV头'复制国家/地区;
指定代码:
从“/data/test_data.copy”中复制国家/地区'带分隔符',' CSV头编码' utf-8 ';
3. 总结
本文介绍了PostgreSQL中的copy命令,并通过实例展示了不同的应用场景。使用COPY加载大量行总是比使用INSERT快。COPY会设置一次,每行的开销很低,尤其是不涉及触发器的时候。
本文关于PostgreSQL复制命令教程的详细讲解到此为止。有关PostgreSQL copy命令的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。