Articles

Importare un file CSV in una tabella PostgreSQL

Posted on

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
CREATE TABLE persons ( id SERIAL, first_name VARCHAR(50), last_name VARCHAR(50), dob DATE, email VARCHAR(255), PRIMARY KEY (id))
Code language: SQL (Structured Query Language) (sql)
posgresql import csv

In secondo luogo, preparare un file dati CSV con il seguente formato:

dati CSV
filecsv

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:

COPY persons(first_name, last_name, dob, email)FROM 'C:\sampledb\persons.csv'DELIMITER ','CSV HEADER;
Code language: SQL (Structured Query Language) (sql)

PostgreSQL restituisce il seguente messaggio:

COPY 2
Code language: Shell Session (shell)

Significa che due righe sono state copiate. Controlliamo la tabella persons.

SELECT * FROM persons;
Code language: SQL (Structured Query Language) (sql)

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:

COPY sample_table_nameFROM 'C:\sampledb\sample_data.csv' DELIMITER ',' CSV HEADER;
Code language: SQL (Structured Query Language) (sql)

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.

TRUNCATE TABLE persons RESTART IDENTITY;
Code language: SQL (Structured Query Language) (sql)

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

Lascia un commento

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