Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So speichern Sie ein MySQL-Abfrageergebnis in einer CSV-Datei

Sie können ein Abfrageergebnis in einer .CSV-Datei speichern, indem Sie SELECT ... INTO OUTFILE verwenden Aussage.

Sie geben den Namen/Speicherort der Datei sowie andere Optionen wie Feldabschlusszeichen, Zeilenabschlusszeichen usw. an.

Hier ist ein einfaches Beispiel.

SELECT * FROM Customers
INTO OUTFILE '/tmp/customers.csv';

Dadurch werden alle Spalten der Kunden ausgewählt Tabelle und fügt sie in eine CSV-Datei mit dem Namen customers.csv ein im Verzeichnis /tmp Verzeichnis.

Optionale Extras

Sie können angeben, wie Felder und Zeilen beendet werden, indem Sie den FIELDS TERMINATED verwenden und LINES TERMINATED Klauseln.

Sie können auch die Zeichen angeben, die jeden Wert einschließen sollen, indem Sie ENCLOSED BY verwenden Klausel.

Und Sie können die FIELDS ESCAPED BY verwenden -Klausel, um zu steuern, wie Sonderzeichen geschrieben werden.

Hier ist noch einmal die Abfrage, diesmal mit einigen dieser zusätzlichen Klauseln:

SELECT * FROM Customers
INTO OUTFILE '/tmp/customers.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Kopfzeilen hinzufügen

Die vorherigen Beispiele generieren eine .CSV-Datei mit den Ergebnissen der Abfrage, aber nicht mit den Spaltennamen. Das bedeutet, dass die .CSV-Datei in der ersten Zeile keine Kopfzeilen enthält.

Um die Spaltennamen einzuschließen (damit die .CSV-Datei Kopfzeilen in der ersten Zeile enthält), können Sie sie in einem weiteren SELECT fest codieren -Anweisung, die dem Rest der Abfrage durch ein UNION ALL vorangestellt wird Betreiber.

Hier ist ein Beispiel für eine andere (etwas komplexere) Abfrage. In diesem Beispiel fügen wir der CSV-Datei Spaltenüberschriften hinzu:

/* Add column headers */
SELECT 'OrderId','CustomerID','EmployeeID','OrderDate','RequiredDate','ShippedDate','ShipVia','Freight','ShipName','ShipAddress','ShipCity','ShipRegion','ShipPostalCode','ShipCountry','OrderID','ProductId','UnitPrice','Quantity','Discount'

UNION ALL

/* Now the actual query */
SELECT o.OrderId, o.CustomerID, o.EmployeeID, o.OrderDate, o.RequiredDate, o.ShippedDate, o.ShipVia, o.Freight, o.ShipName, o.ShipAddress, o.ShipCity, o.ShipRegion, o.ShipPostalCode, o.ShipCountry, od.OrderID, od.ProductId, od.UnitPrice, od.Quantity, od.Discount 

FROM `Orders` o  LEFT JOIN `Order Details` od ON od.OrderID = o.OrderID 

/* Save the query results to a file */
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Verwendung der MySQL Workbench-GUI

Sie können auch die MySQL Workbench-GUI verwenden, um die Ergebnisse einer Abfrage zu exportieren.