GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So exportieren Sie eine Tabelle von MySQL nach CSV

Einführung

Nur eine begrenzte Anzahl von Anwendungen liest MySQL-Rohtabellen. Eine CSV-Datei funktioniert viel eher mit verschiedenen Datenbankanwendungen. CSV ist ein Standardformat für Datenbanken, in dem ein Komma Werte aus verschiedenen Zeilen und Spalten unterscheidet. Der zusätzliche Vorteil von CSV-Dateien besteht darin, dass sie für Menschen lesbar sind.

Diese ausführliche Anleitung zeigt Ihnen, wie Sie eine MySQL-Datenbank in eine CSV-Datei exportieren.

Voraussetzungen

  • Zugriff auf ein Befehlszeilen-/Terminalfenster
  • Benutzerkonto mit Root- oder Sudo-Berechtigungen
  • Ein MySQL-Benutzerkonto mit Root-Rechten
  • Vorkonfiguriertes phpMyAdmin-Konto (optional)

MySQL mit phpMyAdmin in CSV exportieren

Das Tool phpMyAdmin bietet eine grafische Oberfläche zur Verwaltung Ihrer MySQL-Datenbanken. Sie können es verwenden, um jede seiner verfolgten Datenbanken in eine CSV-Datei zu exportieren.

  1. Beginnen Sie mit der Anmeldung bei phpMyAdmin.
  2. Klicken Sie als Nächstes auf die Datenbanken Schaltfläche auf dem oberen Banner.
  1. Klicken Sie in der Liste der Datenbanken auf den Link zu der Datenbank, die Sie exportieren möchten. In diesem Beispiel haben wir den Benutzer ausgewählt Datenbank.
  1. Der nächste Bildschirm zeigt eine Liste der Tabellen in dieser Datenbank. Aktivieren Sie die Kontrollkästchen für die Tabellen, die Sie exportieren möchten.
  2. Klicken Sie auf Exportieren Schaltfläche auf dem Banner.
  1. Verlassen Sie die Exportmethode so einstellen wie es ist. Verwenden Sie das Format Drop-down-Menü, um CSV auszuwählen, und klicken Sie dann auf Los .
  1. Ein Dialogfeld fordert Sie auf, den Speicherort anzugeben, an dem die CSV-Datei gespeichert werden soll.

Export von MySQL nach CSV über die Befehlszeile

Sie können einen einfachen Export durchführen, indem Sie alle Daten in einer Tabelle auswählen und den Speicherort angeben.

Öffnen Sie zunächst die MySQL-Shell und wechseln Sie dann zu der Datenbank, die Sie exportieren möchten.

Geben Sie die folgende Anweisung ein:

SELECT * FROM myTable
INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n';

Ersetzen Sie myTable mit dem tatsächlichen Namen der Tabelle aus Ihrer Datenbank. Sie können \tmp\myExportFile.csv ersetzen mit einem anderen Dateinamen oder Speicherort. Achten Sie darauf, die .csv-Datei aufzubewahren Dateiname am Ende.

Zusätzliche Optionen für den Export aus MySQL

So geben Sie einzelne Datensätze an, die aus einer Tabelle exportiert werden sollen:

SELECT column1, column2, column3, column4
FROM myTable
WHERE column2 = 'value';

Ersetzen Sie column1 (und der Rest) mit den tatsächlichen Namen der Spalten, die Sie exportieren möchten. Stellen Sie sicher, dass Sie FROM verwenden Befehl, um die Tabelle anzugeben, aus der Sie exportieren. Das WHERE -Anweisung ist optional und erlaubt nur den Export von Zeilen, die einen bestimmten Wert enthalten. Ersetzen Sie value mit dem tatsächlichen Wert, den Sie exportieren möchten. Zum Beispiel:

SELECT order_date, order_number, order_status
FROM current_orders
WHERE order_status='pending';

CSV-Datei exportieren und mit Zeitstempel versehen

Verwenden Sie den folgenden Befehl, um in eine CSV-Datei zu exportieren, und fügen Sie einen Zeitstempel für die Erstellungszeit der Datei hinzu:

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;

Ersetzen Sie wie gewohnt myTable durch den tatsächlichen Namen der Tabelle, die Sie exportieren.

Mit Spaltenüberschriften exportieren

Verwenden Sie eine UNION Anweisung zum Hinzufügen von Spaltenüberschriften zur exportierten Datei:

(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')

Umgang mit NULL-Werten

Wenn es Nullwerte (leere) in der Datenbank gibt, exportiert dieser Prozess sie als den Buchstaben N . Sie können NULL ersetzen Werte mit einer anderen sinnvolleren Textfolge:

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 diesem Fall der IFNULL Der Befehl sucht nach leeren Werten in column3 . Wenn es sie findet, ersetzt es sie durch die Textzeichenfolge N/A .

Mysqldump mit mysqldump in CSV exportieren

Sie können den mysqldump verwenden Anwendung zum Exportieren Ihrer MySQL-Datenbank in eine CSV-Datei. Geben Sie Folgendes in eine Eingabeaufforderung ein:

mysqldump --tab=/var/lib/mysql-files/ --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by='\n' myTable

Dieser Befehl erstellt eine Kopie der Datenbank myTable in den /var/lib/mysql-files .

MySQL mit CSV-Engine nach CSV exportieren

In einigen Fällen können Sie die CSV-Engine in MySQL verwenden, um die Tabelle zu ändern. Diese Methode funktioniert nicht, wenn eine MySQL-Tabelle einen Index hat oder wenn die Tabelle auto_increment verwendet . Verwenden Sie den folgenden Befehl:

ALTER TABLE myTable ENGINE=CSV;

Diese Anweisung ändert das Format der Datenbank in CSV. Anschließend können Sie die CSV-Datei auf ein anderes System kopieren.


Linux
  1. So kopieren Sie MySQL-Tabellen zwischen Datenbanken

  2. So reparieren Sie eine beschädigte MySQL-Datenbanktabelle

  3. So kopieren Sie eine Tabelle von einer MySQL-Datenbank in eine andere MySQL-Datenbank

  4. Wie man MySQL-Abfragen von Bash füttert

  5. Wie kann ich die Privilegien aus MySQL exportieren und dann auf einen neuen Server importieren?

So löschen Sie eine Tabelle in MySQL

So verwenden Sie MySQL-Trigger

So sichern Sie eine einzelne MySQL-Datenbank über die Befehlszeile

So sichern Sie alle MySQL-Datenbanken über die Befehlszeile

So exportieren Sie MySQL-Abfrageergebnisse in das CSV-Format unter Linux

Wie stellt man die MySQL-Datenbank von phpMyAdmin wieder her?