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

Come importare un file CSV in un database MySQL

I file CSV memorizzano e trasferiscono i dati tra i database. Continuate a leggere per scoprire quanto sia facile lavorare con i file CSV in un database MySQL.

I file CSV sono uno dei più antichi formati di scambio dati e sono ancora molto utilizzati dai professionisti IT di vari settori. È comune che le risorse di dati online e i diversi software di database offrano il caricamento e il download dei dati in formato CSV.

In questo articolo esamineremo brevemente cos'è un file CSV e come lavorarci. Imparerete a importare un file CSV in un database MySQL utilizzando uno strumento a riga di comando o un'interfaccia grafica come MySQL Workbench. Sebbene quest'ultimo sia molto più veloce e semplice, entrambi sono importanti da conoscere e mettere in pratica.

Se non avete mai lavorato con un database MySQL, date un'occhiata ai nostri corsi interattivi:

Entrambi i corsi terminano con un quiz che consente di verificare quanto si è appreso. Potete anche seguire questo articolo per imparare a installare un database MySQL su un PC Windows. Non è necessario per nessuno dei due corsi, ma avere un database MySQL sul computer vi darà qualcosa su cui esercitarvi in seguito.

Iniziamo quindi la nostra analisi del formato dei file CSV.

Informazioni sui file CSV

CSV è l'acronimo di "Comma-Separated Values". Un file CSV è un file di testo che memorizza dati tabellari. Ogni riga di un file CSV rappresenta una riga di una tabella. Di solito, i valori delle colonne sono separati da una virgola (da qui il nome " valori separati da virgole"), ma è possibile utilizzare altri separatori, come un punto e virgola o una tabulazione. In genere, la prima riga di un file CSV contiene le intestazioni delle colonne e le righe successive contengono i dati.

Ci si può chiedere cosa succede se un valore contiene una virgola. Viene trattato come un caso speciale: il valore viene avvolto da virgolette doppie. Ad esempio, il valore 12.34 va senza virgolette doppie, ma il valore 12,34 deve essere scritto come "12,34" per evitare che venga considerato come due valori (12 e 34) anziché uno (12,34).

Vediamo un esempio di file CSV chiamato countries.csv, che in seguito importeremo nel database MySQL.

id,country,population,capital
1,USA,"329,500,000",Washington D.C.
2,Canada,"38,010,000",Ottawa
3,UK,"67,220,000",London
4,Spain,"47,350,000",Madrid
5,Greenland,"56,367",Nuuk

Forse non è chiaro come una tabella, ma si può sicuramente vedere lo schema. La prima riga contiene intestazioni di colonne separate da virgole, mentre le righe successive contengono valori separati da virgole. Si noti che qualsiasi valore contenente una virgola è racchiuso tra virgolette doppie.

Ecco una tabella basata sul file countries.csv:

idcountrypopulationcapital
1USA329,500,000Washington D.C.
2Canada38,010,000Ottawa
3UK67,220,000London
4Spain47,350,000Madrid
5Greenland56,367Nuuk

Perché importare un file CSV in un database?

I file CSV utilizzano un semplice formato di testo per memorizzare i dati. I database relazionali e i file CSV sono stati sviluppati per la prima volta negli anni Settanta. Da allora, i file CSV sono stati utilizzati per trasferire dati tra database.

È possibile esportare dati in formato CSV da un database e importarli in questo formato in un altro database (ad esempio per ulteriori elaborazioni e analisi). Inoltre, diverse risorse di dati online e strumenti di database offrono la possibilità di caricare e scaricare dati in formato CSV. Pertanto, il CSV è un formato di file molto comune per il trasferimento dei dati.

Il processo di importazione dei file CSV è rapido e semplice. È molto meglio che creare una tabella e inserire i dati manualmente. Ecco perché i file CSV, nonostante la loro semplicità, svolgono un ruolo fondamentale nell'elaborazione e nell'analisi dei dati.

Importare un file CSV in un database MySQL

Nel database MySQL esistono due opzioni per importare un file CSV. Una è quella di utilizzare uno strumento a riga di comando e l'altra è quella di utilizzare un'interfaccia grafica, o GUI. Vediamo di seguito ognuna di esse.

Importare un file CSV in MySQL con la riga di comando

Seguite i passaggi seguenti per importare un file CSV nel database MySQL tramite lo strumento della riga di comando.

Collegare un database

Partendo dal presupposto che sul computer sia installato un database MySQL funzionante, è possibile utilizzare il client a riga di comando MySQL (illustrato di seguito):

Import a CSV File to a MySQL Database

È possibile connettersi al database eseguendo il comando mysql --host=localhost --user=username --password e fornendo una password:

Import a CSV File to a MySQL Database

Si noti che sia il client della riga di comando MySQL che lo strumento standard della riga di comando forniscono lo stesso prompt mysql.

Importare un file CSV

Prima di importare un file CSV, è necessario creare manualmente una tabella con i tipi di dati corretti per ogni colonna.

Quindi, per prima cosa creiamo un nuovo schema usando il comando CREATE SCHEMA. Poi eseguiamo il comando USE per assicurarci di essere all'interno dello schema appena creato. Infine, creeremo una nuova tabella con il comando CREATE TABLE.

CREATE SCHEMA data;
USE data;
CREATE TABLE `countries` (
`id` int DEFAULT NULL,
`country` text,
`population` text,
`capital` text);

Il comando CREATE SCHEMA seguito da un nome di schema crea un nuovo schema chiamato data. Il comando USE seguito da un nome di schema assicura che si lavori all'interno dello schema appena creato. Dopo aver completato queste operazioni, creiamo una nuova tabella con il comando CREATE TABLE.

Ora possiamo caricare la tabella countries con i dati del nostro file CSV.

LOAD DATA INFILE 'countries.csv'
INTO TABLE countries
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

Questo comando specifica quanto segue:

  • Il file da cui vengono caricati i dati: LOAD DATA INFILE 'countries.csv'
  • La tabella in cui vengono caricati i dati: INTO TABLE countries
  • Il carattere che separa i valori: FIELDS TERMINATED BY ','

Se si utilizza un separatore diverso, come un punto e virgola o una tabulazione, è necessario aggiornare questa riga per includere il carattere di separazione: FIELDS TERMINATED BY ';' o FIELDS TERMINATED BY '  '

  • Se alcuni o tutti i valori sono racchiusi tra virgolette doppie, includere questa riga: ENCLOSED BY '"'
  • Il carattere che termina le righe: LINES TERMINATED BY '\n'
  • L'informazione per ignorare la prima riga, che contiene l'intestazione: IGNORE 1 ROWS;

Ecco l'output della console di tutti i comandi:

Import a CSV File to a MySQL Database

Verifichiamo il processo di importazione eseguendo l'istruzione SELECT.

La riga di comando restituisce un set di dati corretto, anche se la formattazione potrebbe essere disturbata:

Import a CSV File to a MySQL Database

Verifichiamo la stessa cosa utilizzando l'interfaccia GUI.

Import a CSV File to a MySQL Database

Ora siamo sicuri che il processo di importazione è riuscito.

Vediamo come fare lo stesso utilizzando l'interfaccia grafica.

Utilizzo di una GUI MySQL

Utilizzeremo MySQL Workbench, una delle GUI più diffuse per MySQL. Seguite i passaggi seguenti per importare un file CSV in un database MySQL tramite l'interfaccia grafica.

Collegamento di un database

In MySQL Workbench è possibile collegarsi a qualsiasi database facendo clic sul segno + accanto a MySQL Connections nella pagina iniziale. Si apre una finestra che richiede di fornire i dettagli della connessione, come il nome della connessione, il metodo di connessione, l'hostname, la porta, il nome utente e la password.

Import a CSV File to a MySQL Database

A questo punto, testate la connessione facendo clic sul pulsante Test Connection. Fornite la password e, se il test ha esito positivo, riceverete questo messaggio:

Import a CSV File to a MySQL Database

Chiudere entrambe le finestre facendo clic sul pulsante OK. Ora possiamo procedere con l'importazione di un file CSV.

Importazione di un file CSV

Quando si utilizza un'interfaccia grafica, non è necessario creare una tabella prima di importare un file CSV.

Il primo passo consiste nel creare un nuovo schema (se si desidera utilizzare un nuovo schema invece di uno schema esistente). È possibile farlo in due modi:

  • Eseguire il comando CREATE SCHEMA nella finestra delle query: Import a CSV File to a MySQL Database
  • Creare uno schema dall'interfaccia GUI: Import a CSV File to a MySQL Database

A questo punto, fare clic con il pulsante destro del mouse sulle tabelle sotto il nome dello schema e scegliere l'opzione Importazione guidata dati tabella.

Import a CSV File to a MySQL Database

Si aprirà una finestra che vi guiderà nel processo di importazione.

A questo punto, scegliere il file CSV da importare e fare clic su Avanti.

Import a CSV File to a MySQL Database

È possibile utilizzare una tabella esistente (questa opzione richiede la creazione di una tabella prima del processo di importazione) o creare una nuova tabella. In questo caso, abbiamo scelto di creare una nuova tabella.

Import a CSV File to a MySQL Database

MySQL Workbench rileva il formato del file e suggerisce la codifica e i tipi di dati delle colonne da utilizzare. Siete liberi di modificarli come meglio credete, ma noi procederemo con i valori suggeriti.

Import a CSV File to a MySQL Database

Ecco il riepilogo dei compiti che verranno eseguiti:

Import a CSV File to a MySQL Database

E il gioco è fatto!

Import a CSV File to a MySQL Database

Facendo clic sul pulsante Avanti, si ottiene un rapporto dettagliato.

Import a CSV File to a MySQL Database

Ora possiamo chiudere la procedura guidata facendo clic sul pulsante Fine.

Verifichiamo il successo del processo di importazione interrogando la tabella appena creata.

Import a CSV File to a MySQL Database

Non c'è dubbio che l'importazione di un file CSV tramite l'interfaccia grafica sia più veloce e meno macchinosa rispetto all'importazione da riga di comando, ma entrambe le cose sono buone da sapere.

Per confrontare i processi di importazione di file CSV su diversi motori di database, leggete il nostro articolo su Come importare CSV in PostgreSQL usando PgAdmin. E per conoscere il processo di esportazione, Come esportare un file CSV da una query T-SQL presenta il processo di esportazione di un file CSV nel motore di database MS SQL Server.

Importiamo alcuni file CSV!

I file CSV sono molto utilizzati per la loro semplicità. È possibile creare un file CSV utilizzando un semplice editor di testo, come il Blocco note. I file CSV possono utilizzare il punto e virgola al posto della virgola o racchiudere i valori tra virgolette doppie o meno.

Come abbiamo visto in questo articolo, è facile importare file CSV in un database MySQL. È possibile utilizzare la riga di comando o l'interfaccia grafica. Il modo migliore per acquisire dimestichezza con entrambe le opzioni è fare pratica, quindi provate questo e altri esempi. Potete utilizzare i nostri corsi interattivi su MySQL per saperne di più su questo database. Qui troverete una panoramica dei corsi del nostro percorso SQL dalla A alla Z in MySQL.

Buona fortuna!