sql >> Databasteknik >  >> RDS >> Mysql

Hur man sparar ett MySQL-frågeresultat till en .CSV-fil

Du kan spara ett frågeresultat i en .CSV-fil genom att använda SELECT ... INTO OUTFILE uttalande.

Du anger namnet/platsen för filen samt andra alternativ, såsom fältavslutare, linjeavslutare, etc.

Här är ett grundläggande exempel.

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

Detta väljer alla kolumner från Kunder tabell och placerar dem i en .CSV-fil som heter customers.csv i /tmp katalog.

Tillval

Du kan ange hur fält och rader ska avslutas genom att använda FIELDS TERMINATED och LINES TERMINATED klausuler.

Du kan också ange tecknen som ska omsluta varje värde genom att använda ENCLOSED BY klausul.

Och du kan använda FIELDS ESCAPED BY sats för att styra hur man skriver specialtecken.

Här är frågan igen, den här gången med några av dessa extra satser:

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

Lägga till rubriker

De tidigare exemplen kommer att generera en .CSV-fil med resultaten av frågan, men inte med kolumnnamnen. Det betyder att .CSV-filen inte kommer att ha rubriker på första raden.

För att inkludera kolumnnamnen (så att .CSV-filen innehåller rubriker på första raden), kan du hårdkoda dem i en annan SELECT sats, föregås av resten av frågan av en UNION ALL operatör.

Här är ett exempel på en annan (något mer komplex) fråga. I det här exemplet lägger vi till kolumnrubriker i .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';

Använda MySQL Workbench GUI

Du kan också använda MySQL Workbench GUI för att exportera resultaten av en fråga.


  1. Hur kan jag infoga kolumnkommentarer i PostgreSQL via Python?

  2. En introduktion till fulltextsökning i MariaDB

  3. Hur söker jag efter en sträng i en SQL Server-databas?

  4. Reparerar Postgresql efter uppgradering till OSX 10.7 Lion