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_name
last_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