1. Introduzione all’importazione di file CSV in MySQL
Importare file CSV in MySQL è un modo potente per semplificare la gestione dei dati ed eliminare la necessità di inserimento manuale. Ad esempio, quando si desidera caricare in blocco informazioni raccolte da più fonti di dati in un database, o elaborare automaticamente dati da un sistema esterno, l’importazione di CSV diventa estremamente utile.
Casi d’uso comuni per l’importazione di CSV
- Gestione di grandi set di dati : Invece di inserire manualmente migliaia di record, è possibile elaborarli rapidamente usando l’importazione CSV.
- Migrazione dei dati : Comodo per importare dati esportati da altri sistemi in MySQL.
- Aggiornamenti regolari dei dati : Nei sistemi che richiedono aggiornamenti frequenti, l’automazione con file CSV è molto efficace.
2. Prerequisiti
Prima di importare un file CSV in MySQL, sono necessarie alcune configurazioni e preparativi per garantire un processo fluido.
2.1 Ambiente richiesto
- **Installazione del server MySQL È necessario avere MySQL correttamente installato. Verifica che MySQL sia in esecuzione nel tuo ambiente—sia Windows, macOS o Linux.
- Verifica dei permessi necessari Per importare file CSV, l’utente MySQL deve possedere i privilegi appropriati, in particolare il privilegio
LOAD DATA INFILE. Senza di esso, le importazioni potrebbero essere rifiutate.
2.2 Formato del file CSV
- Delimitatore I file CSV sono solitamente delimitati da virgole, ma a volte vengono usati tabulazioni o punti e virgola. Verifica sempre il delimitatore prima dell’importazione.
- Controllo della codifica Se il file CSV utilizza una codifica dei caratteri diversa (ad es., UTF-8, Shift-JIS), potrebbero verificarsi corruzioni dei caratteri durante l’importazione. Controlla la codifica del file in anticipo e convertila in quella corretta se necessario.

3. Importazione di CSV con il comando LOAD DATA INFILE
Il modo più comune per importare file CSV in MySQL è utilizzare il comando LOAD DATA INFILE, che semplifica il caricamento in blocco di grandi quantità di dati in una tabella.
3.1 Sintassi di base
Ecco la sintassi di base per importare un file CSV in MySQL:
LOAD DATA INFILE '/path/to/file.csv' INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n';
FIELDS TERMINATED BY: Definisce il delimitatore usato tra i campi. Una virgola è il più comune.LINES TERMINATED BY: Definisce il delimitatore di riga, solitamente\n(newline).
3.2 Esecuzione di esempio
Nel seguente esempio, un file chiamato user_data.csv viene importato nella tabella users:
LOAD DATA INFILE '/path/to/user_data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES;
IGNORE 1 LINES: Salta la prima riga (riga di intestazione). Utile quando il CSV contiene i nomi delle colonne nella prima riga.
3.3 Note su percorso file e permessi
Il file deve trovarsi in una posizione accessibile dal server MySQL. Se il server non il file, usa LOAD DATA LOCAL INFILE per importare i dati dal lato client.
4. Risoluzione dei problemi comuni
Di seguito sono riportate soluzioni ai problemi tipici riscontrati durante l’importazione di file CSV in MySQL.
4.1 Problemi di percorso file
Se il percorso del file è errato, potresti vedere l’errore The MySQL server is not permitted to read from the file. In questi casi, verifica il percorso corretto sul server, oppure usa l’opzione LOAD DATA LOCAL INFILE per caricare i file dal lato client.
LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n';
4.2 Problemi di codifica dei caratteri
Se il file è salvato con una codifica diversa, potrebbero comparire testi illeggibili durante l’importazione. Per evitarlo, conferma la codifica del file e imposta il set di caratteri appropriato in MySQL:
SET NAMES 'utf8mb4';

5. Esempio pratico: importazione di un file CSV
Seguiamo passo dopo passo il processo di importazione di un file CSV in MySQL.
5.1 Preparazione del file CSV
Crea un file CSV (data.csv) con il seguente contenuto:
id,name,age
1,Taro Yamada,28
2,Hanako Sato,34
3,Ichiro Tanaka,45
5.2 Esecuzione del comando
Per importare il file nella tabella users, esegui questo comando:
LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES;
Questo comando importa tutte le righe a partire dalla seconda riga nella tabella users.
6. Avanzato: Gestione degli Errori e Dati Duplicati
Ecco come gestire errori e dati duplicati durante l’import di file CSV in MySQL.
6.1 Gestione dei Dati Duplicati
Se esistono record con la stessa chiave, utilizza l’opzione REPLACE per sovrascrivere le righe esistenti con i nuovi dati:
LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES
REPLACE;
6.2 Gestione degli Errori
Se desideri continuare il processo anche quando si verificano errori, utilizza l’opzione IGNORE. Questa salterà le righe problematiche continuando a importare il resto dei dati:
LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES
IGNORE;

7. Conclusione
L’importazione di file CSV in MySQL è uno strumento potente per gestire grandi set di dati e migrare dati tra sistemi in modo efficiente. Padronizzando le basi e imparando a gestire errori e duplicati, puoi garantire importazioni di dati affidabili e stabili.
Nei prossimi articoli, tratteremo anche come esportare dati dai database MySQL per migliorare ulteriormente le tue competenze nella gestione dei dati.


