Sommario: in questo tutorial, vi mostreremo vari modi per importare un file CSV in una tabella PostgreSQL.
Prima di tutto, create una nuova tabella chiamata persons
con le seguenti colonne:
-
id
: id della persona -
first_name
: nome -
last_name:
cognome -
dob
data di nascita -
email
: l’indirizzo email
Code language: SQL (Structured Query Language) (sql)CREATE TABLE persons ( id SERIAL, first_name VARCHAR(50), last_name VARCHAR(50), dob DATE, email VARCHAR(255), PRIMARY KEY (id))
In secondo luogo, preparare un file dati CSV con il seguente formato:
Il percorso del file CSV è il seguente: C:\sampledb\persons.csv
Downlo le persone.csv file
Importa un file CSV in una tabella usando la dichiarazione COPY
Per importare questo file CSV nella tabella persons
, si usa la dichiarazione COPY
come segue:
Code language: SQL (Structured Query Language) (sql)COPY persons(first_name, last_name, dob, email)FROM 'C:\sampledb\persons.csv'DELIMITER ','CSV HEADER;
PostgreSQL restituisce il seguente messaggio:
Code language: Shell Session (shell)COPY 2
Significa che due righe sono state copiate. Controlliamo la tabella persons
.
Code language: SQL (Structured Query Language) (sql)SELECT * FROM persons;
Funziona come previsto.
Tuffiamoci nell’istruzione COPY più in dettaglio.
Prima di tutto, si specifica la tabella con i nomi delle colonne dopo la parola chiave COPY
. L’ordine delle colonne deve essere uguale a quello del file CSV. Nel caso in cui il file CSV contenga tutte le colonne della tabella, non è necessario specificarle esplicitamente, per esempio:
Code language: SQL (Structured Query Language) (sql)COPY sample_table_nameFROM 'C:\sampledb\sample_data.csv' DELIMITER ',' CSV HEADER;
In secondo luogo, si mette il percorso del file CSV dopo la parola chiave FROM
. Poiché viene utilizzato il formato CSV, è necessario specificare le clausole DELIMITER
così come CSV
.
In terzo luogo, si specifica la parola chiave HEADER
per indicare che il file CSV contiene un’intestazione. Quando il comando COPY
importa i dati, ignora l’intestazione del file.
Nota che il file deve essere letto direttamente dal server PostgreSQL, non dall’applicazione client. Pertanto, deve essere accessibile dalla macchina server PostgreSQL. Inoltre, è necessario avere accesso come superutente per eseguire con successo l’istruzione COPY
.
Importare un file CSV in una tabella usando pgAdmin
Nel caso tu abbia bisogno di importare un file CSV dal tuo computer in una tabella sul server di database PostgreSQL, puoi usare pgAdmin.
La seguente istruzione tronca la tabella persons
in modo che tu possa reimportare i dati.
Code language: SQL (Structured Query Language) (sql)TRUNCATE TABLE persons RESTART IDENTITY;
Prima, clicca con il tasto destro del mouse sulla tabella persons
e seleziona la voce di menu Importa/Esporta…:
In secondo luogo, (1) passa a importa, (2) sfogliare il file di importazione, (3) selezionare il formato come CSV, (4) selezionare il delimitatore come virgola (,
):
In terzo luogo, clicca sulla scheda colonne, deseleziona la colonna id e clicca sul pulsante OK:
Infine, aspetta che il processo di importazione sia completato. La seguente mostra la finestra di dialogo che ti informa sul progresso dell’importazione:
In questo tutorial, hai imparato come importare dati da un file CSV in una tabella sul server di database PostgreSQL utilizzando l’istruzione COPY
e lo strumento pgAdmin.
- Questo tutorial è stato utile?
- SìNo