Du kan gemme et forespørgselsresultat i en .CSV-fil ved at bruge SELECT ... INTO OUTFILE
erklæring.
Du angiver navnet/placeringen af filen samt andre muligheder, såsom feltterminatorer, linjeterminatorer osv.
Her er et grundlæggende eksempel.
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv';
Dette vælger alle kolonner fra Kunder tabel og sætter dem i en .CSV-fil kaldet customers.csv i /tmp bibliotek.
Valgfrit ekstraudstyr
Du kan specificere, hvordan felter og linjer afsluttes ved at bruge FIELDS TERMINATED
og LINES TERMINATED
klausuler.
Du kan også angive de tegn, der skal omslutte hver værdi ved at bruge ENCLOSED BY
klausul.
Og du kan bruge FIELDS ESCAPED BY
klausul til at kontrollere, hvordan man skriver specialtegn.
Her er forespørgslen igen, denne gang ved hjælp af nogle af disse ekstra klausuler:
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Tilføjelse af overskrifter
De foregående eksempler vil generere en .CSV-fil med resultaterne af forespørgslen, men ikke med kolonnenavnene. Det betyder, at .CSV-filen ikke har overskrifter på den første linje.
For at inkludere kolonnenavnene (så .CSV-filen indeholder overskrifter på første linje), kan du hardkode dem i en anden SELECT
sætning, foran resten af forespørgslen af en UNION ALL
operatør.
Her er et eksempel på en anden (lidt mere kompleks) forespørgsel. I dette eksempel føjer vi kolonneoverskrifter til .CSV-filen:
/* 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';
Brug af MySQL Workbench GUI
Du kan også bruge MySQL Workbench GUI til at eksportere resultaterne af en forespørgsel.