Esportare una tabella PostgreSQL in un file CSV

Sommario: in questo tutorial, imparerete varie tecniche per esportare dati da tabelle PostgreSQL in file CSV.

Nel tutorial precedente, vi abbiamo mostrato come importare dati da un file CSV in una tabella. Useremo la tabella persons che abbiamo creato per importare dati da un file CSV.

posgresql export csv

Controlliamo i dati della tabella persons.

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

Abbiamo due record nella tabella.

Esportare i dati da una tabella a CSV usando l’istruzione COPY

Il modo più semplice per esportare i dati di una tabella in un file CSV è di usare l’istruzione COPY. Per esempio, se vuoi esportare i dati della tabella persons in un file CSV chiamato persons_db.csv nella cartella C:\tmp, puoi usare la seguente istruzione:

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

PostgreSQL esporta tutti i dati da tutte le colonne della tabella persons nel file persons_db.csv.

postgresql export csv

In alcuni casi, si desidera esportare i dati di solo alcune colonne di una tabella in un file CSV. Per fare questo, si specificano i nomi delle colonne insieme al nome della tabella dopo la parola chiave COPY. Per esempio, la seguente dichiarazione esporta i dati dalle tabelle first_namelast_name, e email colonne della tabella persons in 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 esporta csv parzialmente

Se non si vuole esportare l’intestazione, che contiene i nomi delle colonne della tabella, basta rimuovere il flag HEADER nella dichiarazione COPY. L’istruzione seguente esporta solo i dati dalla colonna email della tabella persons in un file CSV.

COPY persons(email) TO 'C:\tmp\persons_email_db.csv' DELIMITER ',' CSV;
Code language: SQL (Structured Query Language) (sql)
postgresql esportazione csv parzialmente senza intestazione

Si noti che il nome del file CSV che si specifica nel comando COPY deve essere scritto direttamente dal server. Ciò significa che il file CSV deve risiedere sulla macchina del server del database, non sulla tua macchina locale. Il file CSV deve anche essere scrivibile dall’utente che esegue il server PostgreSQL come.

Esporta i dati da una tabella a un file CSV usando il comando \copy

Nel caso si abbia accesso a un server di database PostgreSQL remoto, ma non si abbiano privilegi sufficienti per scrivere su un file, si può usare il comando integrato di PostgreSQL \copy.

Il comando \copy esegue fondamentalmente la dichiarazione COPY di cui sopra. Tuttavia, invece di scrivere il file CSV sul server, psql scrive il file CSV e trasferisce i dati dal server al vostro file system locale. Per utilizzare il comando \copy, è sufficiente avere privilegi sufficienti per la vostra macchina locale. Non richiede i privilegi di superutente di PostgreSQL.

Per esempio, se volete esportare tutti i dati della tabella persons in un file persons_client.csv, potete eseguire il comando \copy dal client psql come segue:

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

In questo tutorial, abbiamo mostrato come usare l’istruzione COPY e il comando \copy per esportare i dati da una tabella a file CSV.

  • Questo tutorial è stato utile?
  • SìNo

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *