Introduzione
Solo un numero limitato di applicazioni legge tabelle MySQL grezze. È molto più probabile che un file CSV funzioni con diverse applicazioni di database. CSV è un formato standard per i database in cui una virgola distingue i valori da righe e colonne diverse. Il vantaggio aggiuntivo dei file CSV è che sono leggibili dall'uomo.
Questa guida dettagliata ti mostrerà come esportare un database MySQL in un file CSV.
Prerequisiti
- Accesso a una riga di comando/finestra del terminale
- Account utente con privilegi di root o sudo
- Un account utente MySQL con privilegi di root
- Account phpMyAdmin preconfigurato (opzionale)
Esporta MySQL in CSV con phpMyAdmin
Lo strumento phpMyAdmin fornisce un'interfaccia grafica per la gestione dei database MySQL. Puoi usarlo per esportare qualsiasi database tracciato in un file CSV.
- Inizia accedendo a phpMyAdmin.
- Successivamente, fai clic su Database pulsante sul banner in alto.
- Nell'elenco dei database, fare clic sul collegamento al database che si desidera esportare. In questo esempio, abbiamo selezionato l'utente banca dati.
- La schermata successiva mostra un elenco di tabelle in quel database. Seleziona le caselle delle tabelle che desideri esportare.
- Fai clic su Esporta pulsante sul banner.
- Lascia Metodo di esportazione impostato così com'è. Usa il Formato menu a discesa per selezionare CSV, quindi fai clic su Vai .
- Una finestra di dialogo richiede di specificare la posizione in cui salvare il file CSV.
Esportazione da MySQL a CSV utilizzando la riga di comando
Puoi eseguire un'esportazione senza fronzoli selezionando tutti i dati in una tabella e specificando la posizione in cui salvarli.
Inizia aprendo la shell MySQL, quindi passa al database che desideri esportare.
Immettere la seguente istruzione:
SELECT * FROM myTable
INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n';
Sostituisci myTable
con il nome effettivo della tabella dal tuo database. Puoi sostituire \tmp\myExportFile.csv
con qualsiasi altro nome di file o posizione. Assicurati di mantenere il .csv
nome del file alla fine.
Opzioni aggiuntive per l'esportazione da MySQL
Per specificare singoli set di dati da esportare da una tabella:
SELECT column1, column2, column3, column4
FROM myTable
WHERE column2 = 'value';
Sostituisci column1
(e il resto) con i nomi effettivi delle colonne che desideri esportare. Assicurati di utilizzare il FROM
comando per specificare la tabella da cui stai esportando. Il WHERE
L'istruzione è facoltativa e consente di esportare solo le righe che contengono un valore specifico. Sostituisci value
con il valore effettivo che desideri esportare. Ad esempio:
SELECT order_date, order_number, order_status
FROM current_orders
WHERE order_status='pending';
Esporta file CSV e timestamp
Utilizza il comando seguente per esportare in un file CSV e aggiungi un timestamp per l'ora in cui è stato creato il file:
SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d_%H_%i_%s');
SET @FOLDER = '\tmp';
SET @PREFIX = 'myTable';
SET @EXT = '.csv';
SET @CMD = CONCAT("SELECT * FROM myTable INTO OUTFILE '",@FOLDER,@PREFIX,@TS,@EXT,
"' FIELDS ENCLOSED BY '\"'
TERMINATED BY ';'
ESCAPED BY '\"'","
LINES TERMINATED BY '\r\n';");
PREPARE statement FROM @CMD;
EXECUTE statement;
Come al solito, sostituisci myTable
con il nome effettivo della tabella che stai esportando.
Esportazione con intestazioni di colonna
Usa un UNION
istruzione per aggiungere intestazioni di colonna al file esportato:
(SELECT 'column1','column2','column3','column4')
UNION
(SELECT column1, column2, column3, column4
FROM myTable
INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n')
Gestire valori NULL
Se sono presenti valori nulli (vuoti) nel database, questo processo li esporta come la lettera N
. Puoi sostituire NULL
valori con un'altra stringa di testo che ha più senso:
SELECT column1, column2, IFNULL(column3, 'N/A')
FROM myTable INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY '"' LINES
TERMINATED BY '\r\n');
In questo caso, il IFNULL
comando cerca valori vuoti in column3
. Quando li trova, li sostituisce con la stringa di testo N/A
.
Esporta MySQL in CSV usando mysqldump
Puoi utilizzare mysqldump applicazione per esportare il database MySQL in un file CSV. Immettere quanto segue in un prompt dei comandi:
mysqldump --tab=/var/lib/mysql-files/ --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by='\n' myTable
Questo comando crea una copia del database myTable
nel /var/lib/mysql-files
.
Esporta MySQL in CSV utilizzando il motore CSV
In alcuni casi, puoi utilizzare il motore CSV in MySQL per modificare la tabella. Questo metodo non funzionerà se una tabella MySQL ha un indice o se la tabella utilizza auto_increment . Usa il seguente comando:
ALTER TABLE myTable ENGINE=CSV;
Questa istruzione cambia il formato del database in CSV. È quindi possibile copiare il file CSV su un altro sistema.