Możesz zapisać wynik zapytania w pliku .CSV, używając SELECT ... INTO OUTFILE
oświadczenie.
Określasz nazwę/lokalizację pliku, a także inne opcje, takie jak terminatory pól, terminatory linii itp.
Oto podstawowy przykład.
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv';
Spowoduje to wybranie wszystkich kolumn z listy Klienci tabeli i umieszcza je w pliku .CSV o nazwie customers.csv w /tmp katalog.
Opcjonalne dodatki
Możesz określić sposób kończenia pól i wierszy za pomocą FIELDS TERMINATED
i LINES TERMINATED
klauzule.
Możesz również określić znaki, które mają zawierać każdą wartość, używając ENCLOSED BY
klauzula.
Możesz też skorzystać z FIELDS ESCAPED BY
klauzula kontrolująca sposób pisania znaków specjalnych.
Oto zapytanie ponownie, tym razem z wykorzystaniem niektórych z tych dodatkowych klauzul:
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Dodawanie nagłówków
Poprzednie przykłady wygenerują plik .CSV z wynikami zapytania, ale nie z nazwami kolumn. Oznacza to, że plik .CSV nie będzie miał nagłówków w pierwszym wierszu.
Aby uwzględnić nazwy kolumn (tak, aby plik .CSV zawierał nagłówki w pierwszym wierszu), możesz je na stałe zakodować w innym SELECT
oświadczenie, poprzedzone resztą zapytania przez UNION ALL
operatora.
Oto przykład innego (nieco bardziej złożonego) zapytania. W tym przykładzie dodajemy nagłówki kolumn do pliku .CSV:
/* 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';
Korzystanie z GUI MySQL Workbench
Możesz także użyć GUI MySQL Workbench, aby wyeksportować wyniki zapytania.