U kunt een queryresultaat opslaan in een .CSV-bestand met behulp van de SELECT ... INTO OUTFILE
verklaring.
U geeft de naam/locatie van het bestand op, evenals andere opties, zoals veldafsluitingen, regelafsluitingen, enz.
Hier is een eenvoudig voorbeeld.
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv';
Dit selecteert alle kolommen van de Klanten tabel en plaatst ze in een .CSV-bestand met de naam customers.csv in de /tmp directory.
Optionele extra's
U kunt specificeren hoe velden en regels worden beëindigd met behulp van de FIELDS TERMINATED
en LINES TERMINATED
clausules.
U kunt ook de tekens specificeren om elke waarde te omsluiten met behulp van de ENCLOSED BY
clausule.
En je kunt de FIELDS ESCAPED BY
. gebruiken clausule om te bepalen hoe speciale tekens moeten worden geschreven.
Hier is de vraag nogmaals, deze keer met behulp van enkele van die extra clausules:
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Koppen toevoegen
De vorige voorbeelden genereren een .CSV-bestand met de resultaten van de zoekopdracht, maar niet met de kolomnamen. Dit betekent dat het .CSV-bestand geen headers op de eerste regel heeft.
Om de kolomnamen op te nemen (zodat het .CSV-bestand headers op de eerste regel bevat), kunt u ze hardcoderen in een andere SELECT
statement, toegevoegd aan de rest van de zoekopdracht door een UNION ALL
telefoniste.
Hier is een voorbeeld van een andere (iets complexere) query. In dit voorbeeld voegen we kolomkoppen toe aan het .CSV-bestand:
/* 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';
De MySQL Workbench GUI gebruiken
U kunt ook de MySQL Workbench GUI gebruiken om de resultaten van een zoekopdracht te exporteren.