sql >> Database teknologi >  >> RDS >> Mysql

Sådan gemmer du et MySQL-forespørgselsresultat i en .CSV-fil

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.


  1. Oracle Sequence nextval hopper nummer frem og tilbage

  2. SQLite indeks

  3. Mangler ved mysql_real_escape_string?

  4. Hvorfor lære Cassandra med Hadoop?