Exportar tabela PostgreSQL para ficheiro CSV

Resumo: neste tutorial, aprenderá várias técnicas para exportar dados de tabelas PostgreSQL para ficheiros CSV.

No tutorial anterior, mostrámos-lhe como importar dados de um ficheiro CSV para uma tabela. Utilizaremos a tabela persons que criámos para a importação de dados de um ficheiro CSV.

posgresql export csv

V>Vejamos os dados de verificação da tabela persons.

SELECT*FROMpersons;
Code language: SQL (Structured Query Language) (sql)
posgresql import csv from pgAdmin tool persons table

Temos dois registos na tabela.

Exportar dados de uma tabela para CSV usando a declaração COPY

A forma mais fácil de exportar dados de uma tabela para um ficheiro CSV é usar COPY declaração. Por exemplo, se quiser exportar os dados da pasta persons tabela para um ficheiro CSV chamado persons_db.csv na pasta C:\tmp, pode usar a seguinte declaração:

COPY persons TO 'C:\tmp\persons_db.csv' DELIMITER ',' CSV HEADER;
Code language: SQL (Structured Query Language) (sql)

PostgreSQL exporta todos os dados de todas as colunas do ficheiro persons tabela para o ficheiro persons_db.csv.

postgresql export csv

Em alguns casos, pretende exportar dados de apenas algumas colunas de uma tabela para um ficheiro CSV. Para o fazer, especifica os nomes das colunas juntamente com o nome da tabela após COPY palavra-chave. Por exemplo, a seguinte declaração exporta dados do first_namelast_name, e email colunas do persons tabela para person_partial_db.csv

COPY persons(first_name,last_name,email) TO 'C:\tmp\persons_partial_db.csv' DELIMITER ',' CSV HEADER;
Code language: SQL (Structured Query Language) (sql)
postgresql export csv parcialmente

Se não quiser exportar o cabeçalho, que contém os nomes das colunas da tabela, basta remover a declaração HEADER bandeira no COPY. A seguinte declaração exporta apenas dados da tabela email coluna da tabela persons para um ficheiro CSV.

COPY persons(email) TO 'C:\tmp\persons_email_db.csv' DELIMITER ',' CSV;
Code language: SQL (Structured Query Language) (sql)
postgresql export csv parcialmente sem cabeçalho

Notificação de que o nome do ficheiro CSV que especificar no comando COPY deve ser escrito directamente pelo servidor. Isto significa que o ficheiro CSV deve residir na máquina do servidor de bases de dados, e não na sua máquina local. O ficheiro CSV também precisa de poder ser escrito pelo utilizador que o servidor PostgreSQL executa como.

Exportar dados de uma tabela para ficheiro CSV usando o comando \copy

No caso de ter acesso a um servidor remoto de base de dados PostgreSQL, mas não ter privilégios suficientes para escrever num ficheiro nele, pode usar o comando incorporado no PostgreSQL \copy.

O comando \copy executa basicamente o comando COPY declaração acima. Contudo, em vez de o servidor escrever o ficheiro CSV, psql escreve o ficheiro CSV, transfere dados do servidor para o seu sistema de ficheiros local. Para usar \copy comando, só precisa de ter privilégios suficientes para a sua máquina local. Não requer privilégios de superutilizador PostgreSQL.

Por exemplo, se quiser exportar todos os dados do comando persons tabela em persons_client.csv ficheiro, pode executar o comando \copy a partir do cliente psql como se segue:

\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv
Code language: SQL (Structured Query Language) (sql)

Neste tutorial, mostramos-lhe como utilizar COPY comando e \copy comando para exportar dados de uma tabela para ficheiros CSV.

  • Este tutorial foi útil ?
  • Sim Não
  • Deixe uma resposta

    O seu endereço de email não será publicado. Campos obrigatórios marcados com *