Abfrageergebnisse in eine CSV-Datei exportieren
Das Exportieren von Daten ist genauso wichtig wie das Importieren. Möglicherweise müssen Sie Berichte erstellen, Daten mit anderen Systemen teilen oder Analysen in einem Tabellenkalkulationsprogramm durchführen. Die Anweisung SELECT ... INTO OUTFILE ermöglicht es Ihnen, das Ergebnis einer beliebigen Abfrage direkt in einer Datei zu speichern.
Fügen Sie zunächst zwei weitere Mitarbeiter zur Tabelle in Ihrer MySQL-Shell hinzu.
INSERT INTO employees (id, first_name, last_name, email, department) VALUES
(5, 'Alice', 'Johnson', 'alice.johnson@example.com', 'Sales'),
(6, 'Bob', 'Williams', 'bob.williams@example.com', 'Marketing');
Exportieren Sie nun die gesamte employees-Tabelle in eine neue Datei namens employees_export.csv. Stellen Sie zunächst sicher, dass Sie sich noch in der richtigen Datenbank befinden:
SELECT id, first_name, last_name, email, department
FROM company.employees
INTO OUTFILE '/tmp/employees_export.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
SELECT ...: Dies ist eine Standardabfrage, die angibt, welche Daten exportiert werden sollen.
INTO OUTFILE '/tmp/employees_export.csv': Gibt den vollständigen Pfad für die Ausgabedatei an. Aus Sicherheitsgründen verlangt MySQL, dass diese Datei noch nicht existiert.
FIELDS TERMINATED BY ',': Trennt Felder durch ein Komma.
ENCLOSED BY '"': Schließt jeden Feldwert in doppelte Anführungszeichen ein, was ein gängiges CSV-Format ist.
LINES TERMINATED BY '\n': Beendet jede Zeile mit einem Zeilenumbruchzeichen.
Nachdem Sie den Befehl ausgeführt haben, wechseln Sie zu Ihrem anderen Terminal-Tab (oder öffnen Sie einen neuen) und zeigen Sie den Inhalt der neu erstellten Datei an.
cat /tmp/employees_export.csv
Sie werden alle sechs Zeilen aus Ihrer Tabelle sehen, formatiert als CSV-Datei.
"1","John","Doe","john.doe@example.com","Sales"
"2","Jane","Smith","jane.smith@example.com","Marketing"
"3","Peter","Jones","peter.jones@example.com","Engineering"
"4","Mary","Brown","mary.brown@example.com","HR"
"5","Alice","Johnson","alice.johnson@example.com","Sales"
"6","Bob","Williams","bob.williams@example.com","Marketing"