`
i_am_birdman
  • 浏览: 280898 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

PostgreSQL COPY 导入/导出数据

阅读更多

COPY 命令可以快速的导入数据到 PostgreSQL 中,文件格式类似CVS之类。适合批量导入数据,比 \i 和恢复数据表快。

导出表数据到文件或 STDOUT :

COPY tablename [(column [, ...])]
   TO {'filename' | STDOUT}
   [[WITH]
      [BINARY]
      [OIDS]
      [DELIMITER [AS] 'delimiter']
      [NULL [AS] 'null string']
      [CSV [HEADER]
         [QUOTE [AS] 'quote']
         [ESCAPE [AS] 'escape']
         [FORCE NOT NULL column [, ...]]

导入文件或者 STDIN 到表中:

COPY tablename [(column [, ...])]
   FROM {'filename' | STDIN}
   [[WITH]
      [BINARY]
      [OIDS]
      [DELIMITER [AS] 'delimiter']
      [NULL [AS] 'null string']
      [CSV [HEADER]
         [QUOTE [AS] 'quote']
         [ESCAPE [AS] 'escape']
         [FORCE QUOTE column [, ...]]

导出表 employee 到默认输出 STDOUT:

psql> COPY employee TO STDOUT;
1       JG100011        Jason Gilmore         jason@example.com
2       RT435234        Robert Treat          rob@example.com
3       GS998909        Greg Sabino Mullane   greg@example.com
4       MW777983        Matt Wade             matt@example.com

导出表 employee 到 sql 文件:

psql> COPY employee TO '/home/smallfish/employee.sql';

从文件导入数据:

psql> COPY employeenew FROM '/home/smallfish/employee.sql';
psql> SELECT * FROM employeenew;
employeeid  | employeecode |     name            |       email
------------+--------------+---------------------+---------------
          1 | JG100011     | Jason Gilmore       | jason@example.com
          2 | RT435234     | Robert Treat        | rob@example.com
          3 | GS998909     | Greg Sabino Mullane | greg@example.com
          4 | MW777983     | Matt Wade           | matt@example.com
(4 rows)

输出对象ID(OIDS):

psql> COPY employee TO STDOUT OIDS;
24627  1       GM100011        Jason Gilmore         jason@example.com
24628  2       RT435234        Robert Treat          rob@example.com
24629  3       GS998909        Greg Sabino Mullane   greg@example.com
24630  4       MW777983        Matt Wade             matt@example.com

指定导出间隔符,默认是 \t ,这里为 | :

psql>COPY employee TO STDOUT DELIMITER '|';
1|GM100011|Jason Gilmore|jason@example.com
2|RT435234|Robert Treat|rob@example.com
3|GS998909|Greg Sabino Mullane|greg@example.com
4|MW777983|Matt Wade|matt@example.com

导入文件数据,指定间隔符为 | :

psql> COPY employeenew FROM '/home/smallfish/employee.sql' DELIMITER |;

导出指定字段的数据:

psql> COPY employee (name,email) TO STDOUT;
Jason Gilmore         jason@example.com
Robert Treat          rob@example.com
Greg Sabino Mullane   greg@example.com
Matt Wade             matt@example.com

为 NULL 字段设置默认值:

psql> COPY employee TO STDOUT NULL 'no email';
Jason Gilmore         no email
Robert Treat          rob@example.com
Greg Sabino Mullane   greg@example.com
Matt Wade             no email

导出为CVS格式:

psql> COPY employee (name, email) TO '/home/smallfish/employee.csv' CSV HEADER;

参考资料:Apress Beginning PHP and PostgreSQL 8: From Novice to Professional

分享到:
评论

相关推荐

    postgresql 导入导出

    在IT行业中,数据库管理是...总的来说,PostgreSQL的数据导入导出涉及多个方面,从基础的命令行工具到高级的源码定制,都需要根据具体需求进行选择和操作。了解并熟练掌握这些技能,将有助于你更高效地管理你的数据库。

    postgreSQL copy

    总结,PostgreSQL的COPY命令是高效的数据导入导出工具,尤其在处理大量数据时,其速度远超传统的INSERT语句。理解和熟练掌握COPY命令的使用,能显著提升数据库管理的工作效率。同时,结合JDBC驱动,可以方便地在Java...

    SQL语句导入导出大全

    本资料"SQL语句导入导出大全"涵盖了如何高效地使用SQL来处理数据的导入与导出任务。以下是关于这个主题的详细讲解。 一、SQL数据导入 1. **LOAD DATA INFILE**:MySQL中的LOAD DATA INFILE语句用于快速将大量数据...

    Ruby-此Gem将使您的AR模型能够使用PostgreSQLCOPY命令以CSV格式导入导出数据

    "COPY"命令是PostgreSQL提供的一种高效的数据导入导出工具,可以直接从文件系统向数据库表复制数据,或者将数据库表的数据复制到文件系统。 在描述中提到,这个Gem(Ruby中的库或模块)使得ActiveRecord模型能够...

    文本,Excel导入导出到SQL数据库

    在进行数据导入导出时,确保数据安全性和一致性至关重要,遵循最佳实践,如备份数据、验证导入导出结果、处理异常情况,以及监控进程性能。熟悉这些操作,将有助于提升工作效率,并确保数据准确无误地在文本、Excel...

    数据库数据导出到insert 语句

    这时,可以考虑使用`LOAD DATA INFILE`(MySQL)或`COPY`(PostgreSQL)命令,它们能更快地导入大量数据。 总的来说,将数据库数据导出为INSERT语句是一种灵活的方法,便于数据的备份和迁移。了解如何正确地执行这...

    向数据库中导入数据的几种方法

    PostgreSQL的COPY命令允许从文件系统直接导入或导出数据,其速度非常快。例如,`COPY my_table FROM 'data.csv' DELIMITER ',' CSV HEADER;` 5. **BULK INSERT(SQL Server)**: 在Microsoft SQL Server中,BULK...

    django-postgres-copy:使用Django对PostgreSQLCOPY命令的支持,快速导入和导出定界数据

    "django-postgres-copy"是一个提升Django项目中数据导入导出效率的工具,通过利用PostgreSQL的`COPY`命令,实现了高效、批量的数据操作。它简化了大数据处理流程,降低了内存消耗,并且对于需要频繁进行数据交换的...

    postgres-copy:ActiveRecord模型中的简单PostgreSQLCOPY命令支持

    该Gem将使您的AR模型能够使用PostgreSQL COPY命令以CSV格式导入/导出数据。 如果您需要在PostgreSQL数据库和CSV文件之间传输数据,与使用ruby CSV + INSERT命令相比,PostgreSQL本机CSV解析器将为您提供更好的性能...

    postgresql13-13.1.zip

    - **数据导入/导出**:提升了 `COPY` 命令的性能,使得批量数据导入导出更快。 在部署 PostgreSQL 13 时,要确保遵循最佳实践,如合理设置配置参数、定期备份、监控系统性能、使用合适的安全策略等,以确保数据库的...

    PgBulkInsert:Java库,可使用二进制COPY协议高效地批量插入PostgreSQL

    是PostgreSQL特有的功能,它允许高效地批量导入表或从表导出数据。 与使用INSERT和SELECT相比,这是将数据进出表的更快的方法。 没有出色的库,该项目将无法实现,该库具有Postgres协议的漂亮实现。 建立 在...

    PyPI 官网下载 | django-postgres-copy-2.0.2.tar.gz

    这个库利用了PostgreSQL数据库特有的COPY命令,这是一种高效的数据导入导出机制,能快速处理大量数据,比使用普通的INSERT语句快得多。 django-postgres-copy库的核心功能在于其提供的模型方法和管理器方法,它们...

    python-postgresql-load:如果你想在 python 中使用一些 postgresql COPY 代码片段或模板

    然后,你可以按照库的文档来调用相应的函数,进行数据的导入导出。 5. **优化数据传输** `COPY`命令支持多种格式,如CSV、JSON等,可以灵活选择适合你数据的格式。同时,`COPY`命令还可以与其他PostgreSQL功能...

    让数据从PostgreSQL流动到Greenplum.pdf

    - 导入导出加速:利用优化指令集和OSS文件前缀匹配模式。 5. GP已支持的其他特性 - 插件化:如oss_ext、PostGIS、Oracle兼容包等。 - 支持createextension语法,第三方合作伙伴ETL工具,如ORCA优化器。 - 支持...

    计算机软件-编程源码-向数据库中导入数据的几种方法.zip

    PostgreSQL提供了COPY命令,可以从文件或标准输入/输出快速导入和导出数据: ```sql COPY table_name (column1, column2, ...) FROM '/path/to/file.csv' WITH CSV; ``` 6. JDBC批量操作: 使用Java的JDBC API...

    Python库 | django_postgres_copy-0.2.5-py2.py3-none-any.whl

    `django_postgres_copy`是一个专门针对Django框架与PostgreSQL数据库的库,它的主要功能是提高数据导入和导出的效率。这个库的版本为0.2.5,适用于Python 2和3环境,其安装文件名为`django_postgres_copy-0.2.5-py2....

    有关数据库导入的问题

    2. **SQL命令**:使用`LOAD DATA INFILE`(MySQL)、`BULK INSERT`(SQL Server)或`COPY`(PostgreSQL)等SQL命令可以快速批量导入数据。这些命令允许直接从文件中读取数据并插入到表中,提高了导入效率。 3. **...

    计算机软件-商业源码-向数据库中导入数据的几种方法.zip

    5. **COPY命令**(PostgreSQL):PostgreSQL的COPY命令类似于MySQL的LOAD DATA INFILE,用于从文件快速导入或导出数据。 6. **ETL工具**(如 Talend, Informatica):企业级的数据导入通常使用Extract, Transform, ...

Global site tag (gtag.js) - Google Analytics