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.

Controlliamo i dati della tabella persons.
Code language: SQL (Structured Query Language) (sql)SELECT*FROMpersons;

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:
Code language: SQL (Structured Query Language) (sql)COPY persons TO 'C:\tmp\persons_db.csv' DELIMITER ',' CSV HEADER;
PostgreSQL esporta tutti i dati da tutte le colonne della tabella persons nel file persons_db.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
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 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.
Code language: SQL (Structured Query Language) (sql)COPY persons(email) TO 'C:\tmp\persons_email_db.csv' DELIMITER ',' CSV;

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:
Code language: SQL (Structured Query Language) (sql)\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with csv
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