sql >> Databáze >  >> RDS >> Mysql

Jak uložit výsledek dotazu MySQL do souboru .CSV

Výsledek dotazu můžete uložit do souboru .CSV pomocí SELECT ... INTO OUTFILE prohlášení.

Zadáte název/umístění souboru a také další možnosti, jako jsou zakončení polí, zakončení řádků atd.

Zde je základní příklad.

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

Tím se vyberou všechny sloupce z Zákazníci tabulky a vloží je do souboru CSV s názvem customers.csv v /tmp adresář.

Volitelné doplňky

Způsob ukončení polí a řádků můžete určit pomocí FIELDS TERMINATED a LINES TERMINATED klauzule.

Můžete také zadat znaky pro uzavření každé hodnoty pomocí ENCLOSED BY doložka.

A můžete použít FIELDS ESCAPED BY klauzule k ovládání způsobu psaní speciálních znaků.

Zde je dotaz znovu, tentokrát s použitím některých dalších klauzulí:

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

Přidání záhlaví

Předchozí příklady vygenerují soubor .CSV s výsledky dotazu, ale ne s názvy sloupců. To znamená, že soubor .CSV nebude mít na prvním řádku záhlaví.

Chcete-li zahrnout názvy sloupců (aby soubor .CSV obsahoval záhlaví na prvním řádku), můžete je napevno zakódovat do jiného SELECT před zbytek dotazu předřazený příkazem UNION ALL operátor.

Zde je příklad jiného (trochu složitějšího) dotazu. V tomto příkladu přidáme záhlaví sloupců do souboru 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';

Použití grafického uživatelského rozhraní MySQL Workbench

K exportu výsledků dotazu můžete také použít grafické uživatelské rozhraní MySQL Workbench.


  1. Jak mohu opravit tuto chybu:není podporován SQL92?

  2. Odkaz na alias jinde v seznamu SELECT

  3. Jak vypsat všechny uživatele v PostgreSQL

  4. Co je pohled v Oracle?