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

Come salvare il risultato di una query MySQL in un file .CSV

Puoi salvare il risultato di una query in un file .CSV utilizzando SELECT ... INTO OUTFILE dichiarazione.

Specificare il nome/la posizione del file e altre opzioni, come terminazioni di campo, terminazioni di riga e così via.

Ecco un esempio di base.

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

Questo seleziona tutte le colonne da Clienti table e li inserisce in un file .CSV chiamato customers.csv in /tmp directory.

Extra opzionali

Puoi specificare come terminare campi e righe utilizzando FIELDS TERMINATED e LINES TERMINATED clausole.

Puoi anche specificare i caratteri per racchiudere ciascun valore utilizzando il ENCLOSED BY clausola.

E puoi utilizzare FIELDS ESCAPED BY clausola per controllare come scrivere caratteri speciali.

Ecco di nuovo la query, questa volta utilizzando alcune di queste clausole extra:

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

Aggiunta di intestazioni

Gli esempi precedenti genereranno un file .CSV con i risultati della query, ma non con i nomi delle colonne. Ciò significa che il file .CSV non avrà intestazioni sulla prima riga.

Per includere i nomi delle colonne (in modo che il file .CSV contenga le intestazioni sulla prima riga), puoi codificarli in un altro SELECT istruzione, anteposta al resto della query da un UNION ALL operatore.

Ecco un esempio di un'altra query (leggermente più complessa). In questo esempio, aggiungiamo le intestazioni di colonna al file .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';

Utilizzo della GUI di MySQL Workbench

Puoi anche utilizzare la GUI di MySQL Workbench per esportare i risultati di una query.