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.

V>Vejamos os dados de verificação da tabela persons.
Code language: SQL (Structured Query Language) (sql)SELECT*FROMpersons;

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:
Code language: SQL (Structured Query Language) (sql)COPY persons TO 'C:\tmp\persons_db.csv' DELIMITER ',' CSV HEADER;
PostgreSQL exporta todos os dados de todas as colunas do ficheiro persons tabela para o ficheiro persons_db.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
Code language: SQL (Structured Query Language) (sql)COPY persons(first_name,last_name,email) TO 'C:\tmp\persons_partial_db.csv' DELIMITER ',' CSV HEADER;

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.
Code language: SQL (Structured Query Language) (sql)COPY persons(email) TO 'C:\tmp\persons_email_db.csv' DELIMITER ',' CSV;

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:
Code language: SQL (Structured Query Language) (sql)\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv
 Neste tutorial, mostramos-lhe como utilizar COPY comando e \copy comando para exportar dados de uma tabela para ficheiros CSV.