sql >> Database >  >> RDS >> Mysql

Een MySQL-queryresultaat opslaan in een .CSV-bestand

U kunt een queryresultaat opslaan in een .CSV-bestand met behulp van de SELECT ... INTO OUTFILE verklaring.

U geeft de naam/locatie van het bestand op, evenals andere opties, zoals veldafsluitingen, regelafsluitingen, enz.

Hier is een eenvoudig voorbeeld.

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

Dit selecteert alle kolommen van de Klanten tabel en plaatst ze in een .CSV-bestand met de naam customers.csv in de /tmp directory.

Optionele extra's

U kunt specificeren hoe velden en regels worden beëindigd met behulp van de FIELDS TERMINATED en LINES TERMINATED clausules.

U kunt ook de tekens specificeren om elke waarde te omsluiten met behulp van de ENCLOSED BY clausule.

En je kunt de FIELDS ESCAPED BY . gebruiken clausule om te bepalen hoe speciale tekens moeten worden geschreven.

Hier is de vraag nogmaals, deze keer met behulp van enkele van die extra clausules:

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

Koppen toevoegen

De vorige voorbeelden genereren een .CSV-bestand met de resultaten van de zoekopdracht, maar niet met de kolomnamen. Dit betekent dat het .CSV-bestand geen headers op de eerste regel heeft.

Om de kolomnamen op te nemen (zodat het .CSV-bestand headers op de eerste regel bevat), kunt u ze hardcoderen in een andere SELECT statement, toegevoegd aan de rest van de zoekopdracht door een UNION ALL telefoniste.

Hier is een voorbeeld van een andere (iets complexere) query. In dit voorbeeld voegen we kolomkoppen toe aan het .CSV-bestand:

/* 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';

De MySQL Workbench GUI gebruiken

U kunt ook de MySQL Workbench GUI gebruiken om de resultaten van een zoekopdracht te exporteren.


  1. Meerdere tabellen in PostgreSQL laten vallen met een jokerteken

  2. Importeer SQL-dump in PostgreSQL-database

  3. SQLite SUBSTRING() uitgelegd

  4. PDO-verbindingstest