PPour ceux qui utilisent phpMyAdmin, on sait qu’il est souvent très long d’importer un fichier CSV dans MySQL par ce biais. Même si phpMyAdmin est une application géniale pour gérer ses bases de données

ont peu bien lui reprocher cette lenteur d’importation des fichiers volumineux.

Importer un fichier csv dans MySQL en ligne de commande

Importer un fichier csv dans MySQL en ligne de commande

Petite parenthèse :

Pour ceux qui sont bloqués par la taille du fichier et qui ne savent pas comment importer un fichier volumineux dans phpMyAdmin vous pouvez consulter cet article : Configurer phpMyAdmin pour les fichiers volumineux

Pour consulter la page officielle de phpMyAdmin c’est ici

Revenons à nos moutons, nous allons voir que pour pallier ce petit souci il existe la ligne de commande MySQL, n’ayez pas peur c’est très simple d’utilisation.

Pour commencer nous allons ouvrir l’application en ligne de commande de MySQL, pour cela, il faut savoir ou se trouve cette dernière, si vous êtes sous Wamp ou Xampp cherchez le dossier bin qui se trouve dans le dossier MySQL, vous trouvez un exécutable nommez mysql.exe.

Pour lancer cet exécutable il suffit d’utiliser simultanément les touches windows (entre Ctrl et Alt) et la touche R. Deans nous entrons le chemin d’accès à notre exécutable mysql suivi de –user=root, autrement dit, nous ouvrons notre application avec les droits super-utilisateur, si vous avez un mot de passe sur votre base de données n’oubliez pas d’ajouter le password.

Lancer MySQL en ligne de commande

Si vous êtes sous Linux, ouvrez une console et tapez : mysql -u root

Un invite de commande comme celui ci-dessous doit apparaître :

MySQL en ligne de commande

Maintenant nous allons copier notre fichier csv directement dans le dossier MySQL de la base de données dans laquelle on souhaite importer des données. Dans l’exemple ci-dessous je souhaite importer un jeu de données provenant des données publiques de la CIA (environ 150 000 lignes). Ma base de données étant new_datacountry je recherche dans le dossier MySQL où se situe le dossier contenant ma base de données, il est dans datanew_datacountry, le chemin est donc X:xamppmysqldatanew_datacountry.

Fichier CSV dans MySQL

Désormais, il suffit de procéder à l’importation. Je retourne sur mon invite de commande.

Pour commencer, je sélectionne la base de données dans laquelle aura lieu l’importation avec la commande USE.

USE new_datacountry

Ensuite, je charge le fichier csv que j’ai ajouté dans le dossier new_datacountry et j’indique à la fin le nom de la table qui accueillera les données, ici le nom de la table est ‘cia’.

LOAD DATA INFILE 'cia_remodifie.csv' INTO TABLE cia

Maintenant, j’indique le champ séparant les colonnes, pour moi c’est le ‘;’

FIELDS TERMINATED BY ';'

J’indique ensuite que le double quote sert à délimiter les champs de colonne, au cas où j’aurais un point virgule dans un champ, exemple d’une phrase, pour qu’il ne soit pas pris en compte

ENCLOSED BY '"'

Enfin, j’indique que la ligne se finit par ‘rn’, il s’agit du saut de ligne. Ne pas oublier le point virgule à la fin pour lancer la requête.

LINES TERMINATED BY '\r\n';

Résultat: 152 553 lignes affectées en près de 2 secondes. Je pense que vous comprenez pourquoi il est très utile d’utiliser la ligne de commande MySQL.

Importer du CSV dans MySQL