本文主要介绍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命令的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!