Share |

giovedì 22 dicembre 2011

MySQL : import-export files CSV

In questo breve articolo mostrerò come poter importare ed esportare files CSV da e verso un database MySQL tramite comandi e sintassi SQL.

Premetto che è possibile svolgere questi task in differenti modi.
In questo post saranno proposti gli script SQL che io preferisco utilizzare.

Al fine di documentare meglio gli esempi, farò riferimento ad una semplice ed ipotetica tabella di nome TABLE_EX composta dalle colonne id(INT), nome(VARCHAR), cognome(VARCHAR).

Import di un file CSV

E' bene ricordarsi di rimuovere dal file CSV la prima riga se questa contiene le intestazioni di colonna.

Di seguito lo script che io utilizzo per importare i record da un file CSV:

LOAD DATA LOCAL INFILE 'c:\path\to\file.csv' INTO TABLE TABLE_EX
FIELDS TERMINATED by ';'
ENCLOSED BY '"'
LINES TERMINATED BY '\n\r';

Mi sembra tutto facilmente intuibile, ad eccezione dell'argomento dell'ultima linea dello script: come potresti aver notato, l'esempio fa riferimento ad un ambiente Windows.

In DOS e Windows, una nuova linea all'interno di un file di testo viene indicata dalla sequenza '\n\r', che dovrebbe simulare le vecchie stampanti che dopo aver aggiunto una nuova riga eseguivano anche il carriage-return.

In un ambiente Linux/UNIX dovrebbe essere sufficiente solo il carattere '\n'.

Export di una tabella MySQL in file CSV

Al termine dell'export il file CSV prodotto non conterrà la riga con le intestazioni di colonna.

SELECT * 

  INTO OUTFILE 'file.csv'
  FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n\r'

FROM  TABLE_EX       
WHERE cognome LIKE 'A%';

Come per l'import, mi pare tutto molto intuitivo e semplice: direi che non c'è bisogno di alcun commento.

Questi due semplici script SQL sono essenziali a mio avviso, spero possano tornare utili.

Alla prossima,
MA.

0 commenti:

Posta un commento

Non ti è chiaro qualcosa?
No problem, posta il tuo dubbio ;)

..... e ricordati di firmarlo!