Exporter les résultats de requête vers un fichier CSV
L'exportation de données est aussi importante que l'importation. Vous pourriez avoir besoin de créer des rapports, de partager des données avec d'autres systèmes ou d'effectuer des analyses dans un programme de tableur. L'instruction SELECT ... INTO OUTFILE vous permet d'enregistrer le résultat de n'importe quelle requête directement dans un fichier.
Tout d'abord, ajoutons deux employés supplémentaires à la table dans votre shell MySQL.
INSERT INTO employees (id, first_name, last_name, email, department) VALUES
(5, 'Alice', 'Johnson', 'alice.johnson@example.com', 'Sales'),
(6, 'Bob', 'Williams', 'bob.williams@example.com', 'Marketing');
Maintenant, exportez l'intégralité de la table employees vers un nouveau fichier nommé employees_export.csv. Tout d'abord, assurez-vous que vous êtes toujours dans la bonne base de données :
SELECT id, first_name, last_name, email, department
FROM company.employees
INTO OUTFILE '/tmp/employees_export.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
SELECT ...: Il s'agit d'une requête standard qui spécifie quelles données exporter.
INTO OUTFILE '/tmp/employees_export.csv': Spécifie le chemin complet du fichier de sortie. Pour des raisons de sécurité, MySQL exige que ce fichier n'existe pas déjà.
FIELDS TERMINATED BY ',': Sépare les champs par une virgule.
ENCLOSED BY '"': Encadre chaque valeur de champ entre guillemets doubles, ce qui est un format CSV courant.
LINES TERMINATED BY '\n': Termine chaque ligne par un caractère de nouvelle ligne.
Après avoir exécuté la commande, basculez vers votre autre onglet de terminal (ou ouvrez-en un nouveau) et affichez le contenu du fichier nouvellement créé.
cat /tmp/employees_export.csv
Vous verrez les six lignes de votre table, formatées en fichier CSV.
"1","John","Doe","john.doe@example.com","Sales"
"2","Jane","Smith","jane.smith@example.com","Marketing"
"3","Peter","Jones","peter.jones@example.com","Engineering"
"4","Mary","Brown","mary.brown@example.com","HR"
"5","Alice","Johnson","alice.johnson@example.com","Sales"
"6","Bob","Williams","bob.williams@example.com","Marketing"