转自:http://blog.sina.com.cn/s/blog_4d45ec960100rxlt.html
任务:将excel表中的数据导入到PostgreSQL数据库的某张表中。
工具:PostgreSQL客户端pgAdmin。
步骤:
1.将excel表格字段,按照postgresql 数据库中表的字段顺序来整理数据,并保存为csv文件。
2.用记事本打开csv文件,另存为UTF-8格式。
3.使用PgAdmin客户端链接postgresql数据库,执行如下脚本,导入csv文件到PostgreSQL数据表:
copy testdata from 'd:/test/testdata.csv' delimiter as ',' csv quote as '"'
注:testdata 是postgreSQL数据库表的名称。
注意事项:
1.test目录需要赋予postgres 用户可读写的权限,否则会有如下报错信息:
ERROR: could not open file "d:/testdata2.csv" for writing: Permission denied
2.csv文件要为utf-8格式,否则导入时可能会有报错:
ERROR: invalid byte sequence for encoding "UTF8": 0xcdf5
3.注意windows环境下文件路径的表述方式,如:d:/test/data.csv
附录:
1. postgreSQL数据表也可以批量导出为csv格式,命令如下:
copy testdata to 'd:/test/testdata.csv' delimiter as ',' csv quote as '"'
2.copy 命令的其他用法:
COPY -- 在表和文件之间拷贝数据
(1)COPY FROM
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 NOT NULL column [, ...] ]
(2)COPY TO
COPY tablename [ ( column [, ...] ) ]
TO { 'filename' | STDOUT }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE QUOTE column [, ...] ]
参数详细说明见:PostgreSQL 8.1 中文文档,http://www.pgsqldb.org/pgsqldoc-8.1c/sql-copy.html
相关推荐
在数据库管理中,批量导入数据是一项常见的操作,尤其在处理大量结构化信息时,它可以显著提高工作效率。批量导入数据能够避免手动逐条插入的繁琐,节约时间并减少人为错误。以下将详细介绍批量导入数据库中数据的...
在本教程中,我们将聚焦于如何将Excel数据批量导入到PostgreSQL数据库,特别关注一种常见的方法——通过字符串拼接的方式。PostgreSQL是一个功能强大的开源关系型数据库管理系统,而Excel则是广泛使用的电子表格工具...
3. **事务管理**:批量导入数据时,考虑包裹在`BEGIN`和`COMMIT`之间,以确保数据导入的原子性。 4. **性能优化**:对于大量数据,可调整`pg_stat_temp`设置、增加工作内存或使用批量插入来提升性能。 5. **备份与...
8. **\copy**:执行SQL的COPY命令,用于高效地导入或导出大量数据。 9. **\o**:将查询结果重定向到文件,对于数据分析和报告生成非常有用。 10. **\i**:执行文件中的SQL命令,这使得批量执行脚本成为可能。 11....
- **使用\copy命令**:批量导入数据。 - **直接从另一个程序加载数据**:使用外部工具导入数据。 ##### 修改数据库中的数据 - **使用UPDATE语句**:更新现有数据。 - **通过另一个表更新**:使用子查询更新数据。 ...
MySQL提供了一个名为`LOAD DATA INFILE`的命令,可以直接从文件中快速导入数据。这种方式通常比使用INSERT语句快很多,适用于大批量数据导入。例如,`LOAD DATA INFILE 'data.txt' INTO TABLE my_table;` 4. **...
使用"django-postgres-copy"时,开发者可以编写Django管理命令或视图,将数据文件与数据库表对应起来,然后调用COPY命令进行快速的数据交换。这对于数据科学家、DBA以及任何需要处理大量数据的开发者来说,都是一个...
5. **COPY命令**(PostgreSQL):PostgreSQL的COPY命令类似于MySQL的LOAD DATA INFILE,用于从文件快速导入或导出数据。 6. **ETL工具**(如 Talend, Informatica):企业级的数据导入通常使用Extract, Transform, ...
3. **COPY命令**:在PostgreSQL中,COPY命令可以从一个文件系统文件快速地导入或导出数据。它可以大大提高导入效率。 4. **Oracle SQL*Loader**:Oracle提供了SQL*Loader工具,允许用户从外部文件加载数据到数据库...
2. **SQL命令**:使用`LOAD DATA INFILE`(MySQL)、`BULK INSERT`(SQL Server)或`COPY`(PostgreSQL)等SQL命令可以快速批量导入数据。这些命令允许直接从文件中读取数据并插入到表中,提高了导入效率。 3. **...
COPY命令是Redshift的内置SQL命令,用于从Amazon S3上的CSV、JSON或Parquet等格式的文件快速导入数据。它可以指定数据格式、分隔符、空值表示等参数,支持直接压缩和解压缩数据。 3. **Python脚本**: `redshift-...
PostgreSQL,作为一款强大的开源关系型数据库系统,提供了多种方法来导入数据,其中`pg_bulkload`是一个专为提高数据批量加载速度而设计的工具。本文将深入探讨`pg_bulkload`的工作原理、优势以及如何在PostgreSQL...
11. COPY命令:分为DB端COPY和客户端COPY,它们允许开发者高效地将数据批量导入导出到外部文件。 12. 数据库优化:包括理解函数成本和优化器如何选择最有效的执行计划,以及如何使用索引提高查询效率。 13. 数据库...
MySQL提供了一个特别高效的LOAD DATA INFILE命令,用于从CSV或其他格式的文本文件快速导入数据: ```sql LOAD DATA INFILE 'data.txt' INTO TABLE table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES ...
与传统的COPY命令相比,它能更快地将数据写入数据库,因为它是以二进制格式传输的,而不是文本格式。此外,它利用PostgreSQL的流复制机制,可以并行处理多个数据流,进一步提高导入速度。这对于需要快速恢复数据或者...
4. **编写SQL语句**:使用`LOAD DATA INFILE`(MySQL)、`BULK INSERT`(SQL Server)或`COPY`(PostgreSQL)等命令,根据数据库类型编写SQL语句来导入数据。这些命令需要指定文件路径、表名以及各字段的映射关系。 ...
这个库利用了PostgreSQL数据库特有的COPY命令,这是一种高效的数据导入导出机制,能快速处理大量数据,比使用普通的INSERT语句快得多。 django-postgres-copy库的核心功能在于其提供的模型方法和管理器方法,它们...