GNU/Linux >> Linux Esercitazione >  >> Linux

Come esportare una tabella da MySQL a CSV

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.

  1. Inizia accedendo a phpMyAdmin.
  2. Successivamente, fai clic su Database pulsante sul banner in alto.
  1. Nell'elenco dei database, fare clic sul collegamento al database che si desidera esportare. In questo esempio, abbiamo selezionato l'utente banca dati.
  1. La schermata successiva mostra un elenco di tabelle in quel database. Seleziona le caselle delle tabelle che desideri esportare.
  2. Fai clic su Esporta pulsante sul banner.
  1. Lascia Metodo di esportazione impostato così com'è. Usa il Formato menu a discesa per selezionare CSV, quindi fai clic su Vai .
  1. 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.


Linux
  1. Come copiare tabelle MySQL tra database

  2. Come riparare la tabella del database MySQL danneggiata

  3. Come importare il database di esportazione in MySQL MariaDB

  4. Come copiare una tabella da un database mysql a un altro database mysql

  5. Come posso esportare i privilegi da MySQL e quindi importarli su un nuovo server?

Come eliminare una tabella in MySQL

Come utilizzare i trigger MySQL

Come eseguire il backup di un singolo database MySQL dalla riga di comando

Come eseguire il backup di tutti i database MySQL dalla riga di comando

Come esportare i risultati delle query MySQL in formato CSV in Linux

Come ripristinare il database MySQL da phpMyAdmin?