Можете да запишете резултат от заявка в .CSV файл, като използвате SELECT ... INTO OUTFILE
изявление.
Вие задавате името/местоположението на файла, както и други опции, като терминатори на полета, терминатори на редове и т.н.
Ето един основен пример.
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv';
Това избира всички колони от Клиенти таблица и ги поставя в .CSV файл, наречен customers.csv в /tmp директория.
Допълнителни екстри
Можете да посочите как се прекратяват полета и редове, като използвате FIELDS TERMINATED
и LINES TERMINATED
клаузи.
Можете също да посочите знаците, които да обграждат всяка стойност, като използвате ENCLOSED BY
клауза.
И можете да използвате FIELDS ESCAPED BY
клауза за контролиране на писането на специални символи.
Ето заявката отново, този път с помощта на някои от тези допълнителни клаузи:
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Добавяне на заглавки
Предишните примери ще генерират .CSV файл с резултатите от заявката, но не и с имената на колоните. Това означава, че .CSV файлът няма да има заглавки на първия ред.
За да включите имената на колоните (така че .CSV файлът съдържа заглавки на първия ред), можете да ги кодирате твърди в друг SELECT
оператор, добавен към останалата част от заявката от UNION ALL
оператор.
Ето пример за друга (малко по-сложна) заявка. В този пример добавяме заглавки на колони към .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';
Използване на GUI на MySQL Workbench
Можете също да използвате GUI на MySQL Workbench, за да експортирате резултатите от заявка.