Vous pouvez enregistrer un résultat de requête dans un fichier .CSV en utilisant le SELECT ... INTO OUTFILE
déclaration.
Vous spécifiez le nom/l'emplacement du fichier ainsi que d'autres options, telles que les fins de champ, les fins de ligne, etc.
Voici un exemple de base.
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv';
Cela sélectionne toutes les colonnes de Clients table et les place dans un fichier .CSV appelé customers.csv dans le /tmp répertoire.
Options supplémentaires
Vous pouvez spécifier la manière dont les champs et les lignes se terminent à l'aide de la commande FIELDS TERMINATED
. et LINES TERMINATED
clauses.
Vous pouvez également spécifier les caractères pour encadrer chaque valeur en utilisant le ENCLOSED BY
clause.
Et vous pouvez utiliser FIELDS ESCAPED BY
clause pour contrôler comment écrire les caractères spéciaux.
Voici à nouveau la requête, cette fois en utilisant certaines de ces clauses supplémentaires :
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Ajouter des en-têtes
Les exemples précédents généreront un fichier .CSV avec les résultats de la requête, mais pas avec les noms de colonnes. Cela signifie que le fichier .CSV n'aura pas d'en-têtes sur la première ligne.
Pour inclure les noms de colonnes (afin que le fichier .CSV contienne des en-têtes sur la première ligne), vous pouvez les coder en dur dans un autre SELECT
instruction, précédée du reste de la requête par un UNION ALL
opérateur.
Voici un exemple d'une autre requête (légèrement plus complexe). Dans cet exemple, nous ajoutons des en-têtes de colonne au fichier .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';
Utilisation de l'interface graphique MySQL Workbench
Vous pouvez également utiliser l'interface graphique de MySQL Workbench pour exporter les résultats d'une requête.