Torna all'elenco degli articoli Articoli
Tempo di lettura: 7 minuti

Come importare CSV in PostgreSQL con pgAdmin

Lavorate con i dati e utilizzate file CSV? Ecco una guida pratica su come importare tali file in un database PostgreSQL utilizzando pgAdmin, uno dei migliori editor PostgreSQL sul mercato.

Entriamo subito nel vivo dell'importazione di CSV in un database Postgres. Inizieremo spiegando cos'è un file CSV, quindi introdurremo pgAdmin e mostreremo come eseguire il processo di importazione. Non preoccupatevi, è facile!

Che cos'è un file CSV?

CSV è l'abbreviazione di comma-separated values (valori separati da virgole). È un formato per la memorizzazione di dati in file di testo. Questo standard è supportato da molte applicazioni e programmi, tra cui Microsoft Office, LibreOffice e Google Sheets.

Perché importare file CSV in un database?

Quando si usano i file CSV? Il trasferimento di dati da un programma o una piattaforma a un'altra è uno dei principali utilizzi. Immaginate di dover esportare dati da un database a un foglio di calcolo o viceversa. I file CSV sono il modo più sicuro per salvare i dati; vengono letti da quasi tutte le suite per ufficio e dai sistemi di gestione dei database (DBMS). Inoltre, i CSV sono file di testo e quindi piuttosto piccoli; il trasferimento di serie di dati anche di grandi dimensioni non è un problema. Questo è un enorme vantaggio nell'utilizzo dei CSV.

Vediamo le differenze tra la memorizzazione dei dati in una tabella e quella in un CSV. Ecco una tabella chiamata characters. Mi chiedo se riconoscete i dati che vi ho inserito.

IDfirst_namelast_namefamily
1JohnSnowTargaryen
2AryaStarkStark
3TyrionLannisterLannister

Ecco le stesse informazioni in formato CSV:

ID,first_name,last_name,family
1,John,Snow,Targaryen
2,Arya,Stark,Stark
3,Tyrion,Lannister,Lannister

Si tratta di un insieme di dati molto piccolo, ma potete immaginare come sarebbe con molte colonne e migliaia di righe. Penso che abbiate capito gli usi e i vantaggi dei CSV, quindi passiamo allo strumento che useremo per importarli: pgAdmin.

PostgreSQL e pgAdmin

Qualche tempo fa, il mio amico Ignacio vi ha mostrato come installare e configurare PostgreSQL su Windows 10. Se avete letto quell'articolo, vi ricordo che il programma di PostgreSQL è stato installato in un'unica soluzione. Se avete letto quell'articolo, saprete che Postgres è facile da configurare ed è uno dei DBMS più diffusi al mondo.

Sul mercato esistono moltissimi editor SQL che supportano PostgreSQL. Io mi sono abituato a pgAdmin e onestamente non vedo il motivo di passare ad altro. È un ottimo strumento che non mi ha mai deluso.

Che cos'è pgAdmin? È un programma grafico per la gestione dei database PostgreSQL. La sua ultima versione è pgAdmin 4. Può essere utilizzato su Linux, Unix, macOS o Windows e, essendo open-source, è gratuito. Questo sarà un argomento importante per molti. La piena funzionalità e l'assenza di costi rendono pgAdmin perfetto per me. E forse anche per voi.

PgAdmin consente di amministrare i database e le loro repliche, creare tutti gli oggetti del database, eseguire query e analizzare il piano di query (presentato in forma classica o grafica). È anche possibile utilizzare la console classica per scrivere. Inoltre, esistono numerose estensioni che consentono di adattare liberamente il programma alle proprie esigenze.

Le alternative a pgAdmin sono DBeaver, Navicat, HeidiSQL e OmniDB. Se volete che dedichi un articolo ai vari editor SQL esistenti, compresi quelli per i database PostgreSQL, fatemelo sapere nei commenti.

Presumo che abbiate già installato Postgres e pgAdmin sul vostro computer e che li abbiate impostati in modo appropriato. Ora possiamo metterci al lavoro e importare alcuni dati.

Come importare CSV in PostgreSQL

Torniamo al nostro file characters.csv e cerchiamo di importarlo nel database tramite pgAdmin. Esistono due metodi e vi mostrerò cosa fare passo dopo passo.

1. Creare una tabella in pgAdmin

Utilizzando lo strumento Query interno di pgAdmin, si può innanzitutto creare una tabella con una query SQL:

CREATE TABLE characters 
(id serial, 
first_name varchar, 
last_name varchar, 
family varchar
);

Assicurarsi che le colonne abbiano gli stessi nomi e valori di quelle del file CSV.

Invece di scrivere una query SQL, si può anche fare clic con il tasto destro del mouse su Tabelle nella struttura a sinistra. Apparirà un breve menu. Selezionare Crea e poi Tabella....

Come importare CSV in PostgreSQL usando PgAdmin

Si aprirà una nuova finestra che chiederà di inserire un nome per la nuova tabella. Nel nostro caso, sarà characters.

Come importare CSV in PostgreSQL usando PgAdmin

Nella stessa finestra, fare clic sulla scheda Colonne e aggiungere le colonne appropriate facendo clic sul pulsante +. Ricordare che i nomi delle colonne devono corrispondere a quelli del file CSV. È inoltre necessario specificare il tipo di dati che ogni colonna conterrà.

Se non sapete quali tipi di dati inserire, vi consiglio di seguire il corso LearnSQL.it Data Types in SQL . È meglio imparare le basi ed evitare di commettere errori. Sappiamo quali dati vogliamo includere in ogni colonna, quindi tutto dovrebbe apparire così:

Come importare CSV in PostgreSQL usando PgAdmin

Si noti che è possibile impostare la colonna in modo che non sia NULL e specificare una chiave primaria. Facendo clic su SQL, è possibile visualizzare la query SQL utilizzata per creare la tabella. Per ora non ci occuperemo delle altre funzioni (più avanzate).

Al termine, fare clic su Salva. È stata appena creata una tabella! Se non la si vede nella struttura, fare clic con il pulsante destro del mouse su Tabelle e selezionare Aggiorna. Dovrebbe apparire.

2. Importare il file CSV

Anche in questo caso, è possibile utilizzare lo strumento Query e digitare una query SQL. Utilizzare l'istruzione COPY:

COPY characters
FROM 'C:\a\characters.csv' 
DELIMITER ',' 
CSV HEADER;

Nella prima riga, inserire il nome della tabella. Nella seconda riga (dopo la clausola FROM ), inserire il percorso del file. Nel mio caso, si tratta dell'unità C e della cartella a. Importante: è necessario specificare il carattere DELIMITERche è il carattere utilizzato per separare i valori nel file CSV. Di solito è una virgola, ma può essere un punto e virgola, uno spazio o qualcos'altro.

Infine, usare la parola chiave HEADER per saltare l'intestazione (cioè la riga contenente i nomi delle colonne) quando si copiano i dati dal CSV.

Come importare CSV in PostgreSQL usando PgAdmin

Nel nostro caso, il risultato è un messaggio COPY 3. Ciò significa che pgAdmin ha copiato tre righe nella nostra tabella. Inseriamo una semplice query per verificare che tutto funzioni:

SELECT * FROM characters;
Come importare CSV in PostgreSQL usando PgAdmin

Naturalmente, come nel caso della creazione di una tabella e dell'importazione di dati da un file CSV, possiamo evitare la query e utilizzare il programma stesso. A tale scopo, è sufficiente fare clic con il tasto destro del mouse sulla tabella nell'albero a sinistra e selezionare la voce di menu Importazione/Esportazione....

Come importare CSV in PostgreSQL usando PgAdmin

Apparirà una finestra con il cursore impostato su Importa. Selezionare il file di origine e impostare il formato su CSV. Impostare l'intestazione su se il file ha un'intestazione. L'unica cosa che resta da fare è selezionare il delimitatore (di solito una virgola). La finestra dovrebbe avere questo aspetto:

Quando si fa clic su OK, i dati vengono importati. La tabella è pronta! Ora è possibile scrivere query SQL e analizzare i dati, combinare i dati di altre tabelle, ecc. Benvenuta dall'altra parte dello specchio, Alice! Hai seguito con successo il Bianconiglio.

Importare un file CSV in un database Postgres è stato facile!

È così semplice importare dati da un file CSV in un database PostgreSQL con pgAdmin. Ci sono due modi per farlo: usando il programma stesso e usando l'SQL nello strumento Query e l'istruzione COPY. Io uso pgAdmin perché è un ottimo strumento per lavorare con PostgreSQL. Quale IDE utilizzate? Ditecelo nei commenti.

Se siete principianti di PostgreSQL, vi invito a seguire il nostro corso SQL per principianti in PostgreSQL o SQL dalla A alla Z in PostgreSQL (la traccia principale di questo dialetto). Si tratta di corsi SQL brillanti e interattivi che vi insegneranno tutto ciò di cui avete bisogno per lavorare efficacemente con i database. Non restate indietro: il mondo sta puntando su PostgreSQL, comprese molte grandi aziende. Perché non provare?