Retour à la liste des articles Articles
9 minutes de lecture

Comment importer un fichier CSV dans une base de données MySQL

Les fichiers CSV stockent et transfèrent des données entre les bases de données. Lisez la suite pour découvrir à quel point il est facile de travailler avec des fichiers CSV dans une base de données MySQL.

Les fichiers CSV sont l'un des formats d'échange de données les plus anciens et sont encore largement utilisés par les professionnels de l'informatique dans différents domaines. Il est courant que les ressources de données en ligne et les différents logiciels de base de données proposent leurs téléchargements de données au format CSV.

Dans cet article, nous verrons brièvement ce qu'est un fichier CSV et comment l'utiliser. Vous apprendrez à importer un fichier CSV dans une base de données MySQL à l'aide d'un outil de ligne de commande ou d'une interface utilisateur graphique telle que MySQL Workbench. Bien que cette dernière soit beaucoup plus rapide et plus facile, il est important de connaître et de pratiquer les deux méthodes.

Si vous n'avez jamais travaillé avec une base de données MySQL, n'hésitez pas à consulter nos cours interactifs :

Les deux cours se terminent par un quiz qui vous permet de vérifier ce que vous avez appris. Vous pouvez également suivre cet article pour apprendre à installer une base de données MySQL sur un PC Windows. Ce n'est pas nécessaire pour les deux cours, mais le fait d'avoir une base de données MySQL sur votre ordinateur vous permettra de vous entraîner plus tard.

Commençons donc par l'étude du format de fichier CSV.

À propos des fichiers CSV

CSV est l'abréviation de "Comma-Separated Values" (valeurs séparées par des virgules). Un fichier CSV est un fichier texte qui stocke des données tabulaires. Chaque ligne d'un fichier CSV représente une ligne d'un tableau. En général, les valeurs des colonnes sont séparées par une virgule (d'où le nom " valeurs séparées par une virgule"), mais vous pouvez utiliser d'autres séparateurs, tels que le point-virgule ou la tabulation. En règle générale, la première ligne d'un fichier CSV contient les en-têtes de colonne et les lignes suivantes les données.

Vous vous demandez peut-être ce qui se passe si une valeur contient une virgule. Il s'agit d'un cas particulier : la valeur est mise entre guillemets. Par exemple, la valeur 12.34 n'a pas besoin de guillemets, mais la valeur 12,34 doit être écrite sous la forme "12,34" pour éviter qu'elle ne soit considérée comme deux valeurs (12 et 34) au lieu d'une seule (12,34).

Examinons un exemple de fichier CSV appelé countries.csv que nous importerons plus tard dans la base de données MySQL.

id,country,population,capital
1,USA,"329,500,000",Washington D.C.
2,Canada,"38,010,000",Ottawa
3,UK,"67,220,000",London
4,Spain,"47,350,000",Madrid
5,Greenland,"56,367",Nuuk

Ce n'est peut-être pas aussi clair qu'un tableau, mais vous pouvez certainement voir le modèle. La première ligne contient des en-têtes de colonne séparés par des virgules, et les lignes suivantes contiennent des valeurs séparées par des virgules. Veuillez noter que toute valeur contenant une virgule est placée entre guillemets.

Voici un tableau basé sur le fichier countries.csv :

idcountrypopulationcapital
1USA329,500,000Washington D.C.
2Canada38,010,000Ottawa
3UK67,220,000London
4Spain47,350,000Madrid
5Greenland56,367Nuuk

Pourquoi importer un fichier CSV dans une base de données ?

Les fichiers CSV utilisent un format texte simple pour stocker des données. Les bases de données relationnelles et les fichiers CSV ont été développés à peu près en même temps dans les années 1970. Depuis lors, les fichiers CSV ont été utilisés pour transférer des données entre des bases de données.

Nous pouvons exporter des données dans un format de fichier CSV à partir d'une base de données et les importer dans ce format dans une autre base de données (par exemple, pour un traitement et une analyse ultérieurs). En outre, plusieurs ressources de données en ligne et outils de base de données permettent de télécharger des données au format CSV. Le format CSV est donc un format de fichier très courant pour le transfert de données.

Le processus d'importation de fichiers CSV est rapide et simple. Il est bien meilleur que la création d'un tableau et l'insertion manuelle des données. C'est pourquoi les fichiers CSV, malgré leur simplicité, jouent un rôle crucial dans le traitement et l'analyse des données.

Importer un fichier CSV dans une base de données MySQL

Dans la base de données MySQL, il existe deux options pour importer un fichier CSV. L'une consiste à utiliser un outil de ligne de commande et l'autre une interface utilisateur graphique (GUI). Jetons un coup d'œil à chacune d'entre elles.

Importation d'un fichier CSV dans MySQL à l'aide de la ligne de commande

Suivez les étapes ci-dessous pour importer un fichier CSV dans la base de données MySQL via l'outil de ligne de commande.

Connexion à une base de données

En supposant qu'une base de données MySQL fonctionnelle soit installée sur votre ordinateur, vous pouvez utiliser le client de ligne de commande MySQL (voir ci-dessous) :

Importer un fichier CSV dans une base de données MySQL

Vous pouvez vous connecter à votre base de données en exécutant la commande mysql --host=localhost --user=username --password et en fournissant un mot de passe :

Importer un fichier CSV dans une base de données MySQL

Veuillez noter que le client de ligne de commande MySQL et l'outil de ligne de commande standard fournissent tous deux la même invite mysql.

Importation d'un fichier CSV

Avant d'importer un fichier CSV, vous devez créer manuellement une table avec les types de données appropriés pour chaque colonne.

Commençons donc par créer un nouveau schéma à l'aide de la commande CREATE SCHEMA. Ensuite, nous exécuterons la commande USE pour nous assurer que nous nous trouvons bien dans le schéma nouvellement créé. Enfin, nous allons créer une nouvelle table à l'aide de la commande CREATE TABLE.

CREATE SCHEMA data;
USE data;
CREATE TABLE `countries` (
`id` int DEFAULT NULL,
`country` text,
`population` text,
`capital` text);

La commande CREATE SCHEMA suivie d'un nom de schéma crée un nouveau schéma appelé data. La commande USE suivie d'un nom de schéma garantit que nous travaillons à l'intérieur du schéma nouvellement créé. Après avoir effectué ces opérations, nous créons une nouvelle table à l'aide de la commande CREATE TABLE.

Nous pouvons maintenant charger la table countries avec les données de notre fichier CSV.

LOAD DATA INFILE 'countries.csv'
INTO TABLE countries
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

Cette commande spécifie les éléments suivants :

  • Le fichier à partir duquel les données sont chargées : LOAD DATA INFILE 'countries.csv'
  • Le tableau dans lequel les données sont chargées : INTO TABLE countries
  • Le caractère qui sépare les valeurs : FIELDS TERMINATED BY ','

Veuillez noter que si vous utilisez un séparateur différent, comme un point-virgule ou une tabulation, vous devez mettre à jour cette ligne pour inclure votre caractère de séparation : FIELDS TERMINATED BY ';' ou FIELDS TERMINATED BY '  '

  • Si certaines ou toutes les valeurs sont entre guillemets, incluez cette ligne : ENCLOSED BY '"'
  • Le caractère qui termine les lignes : LINES TERMINATED BY '\n'
  • L'information permettant d'ignorer la première ligne, qui contient l'en-tête : IGNORE 1 ROWS;

Voici la sortie de la console de toutes les commandes :

Importer un fichier CSV dans une base de données MySQL

Vérifions le processus d'importation en exécutant l'instruction SELECT.

La ligne de commande renvoie un ensemble de données correct, bien que le formatage puisse être perturbé :

Importer un fichier CSV dans une base de données MySQL

Vérifions la même chose à l'aide de l'interface graphique.

Importer un fichier CSV dans une base de données MySQL

Nous sommes maintenant sûrs que le processus d'importation a réussi.

Voyons comment faire la même chose en utilisant l'interface graphique.

Utilisation d'une interface graphique MySQL

Nous allons utiliser MySQL Workbench, l'une des interfaces graphiques les plus populaires pour MySQL. Suivez les étapes ci-dessous pour importer un fichier CSV dans une base de données MySQL via l'interface graphique.

Connexion à une base de données

Dans MySQL Workbench, vous pouvez vous connecter à n'importe quelle base de données en cliquant sur le signe + à côté de Connexions MySQL sur la page d'accueil. Une fenêtre s'ouvre et vous demande de fournir les détails de la connexion, tels que le nom de la connexion, la méthode de connexion, le nom d'hôte, le port, le nom d'utilisateur et le mot de passe.

Importer un fichier CSV dans une base de données MySQL

Testez maintenant votre connexion en cliquant sur le bouton Tester la connexion. Indiquez le mot de passe et si le test est réussi, vous obtiendrez ce message :

Importer un fichier CSV dans une base de données MySQL

Fermez les deux fenêtres en cliquant sur le bouton OK. Nous pouvons maintenant procéder à l'importation d'un fichier CSV.

Importation d'un fichier CSV

Lorsque vous utilisez une interface graphique, vous n'avez pas besoin de créer un tableau avant d'importer un fichier CSV.

La première étape consiste à créer un nouveau schéma (si vous souhaitez utiliser un nouveau schéma au lieu d'un schéma existant). Vous pouvez le faire de deux manières :

  • Exécutez la commande CREATE SCHEMA dans la fenêtre de requête : Importer un fichier CSV dans une base de données MySQL
  • Créez un schéma à partir de l'interface graphique : Importer un fichier CSV dans une base de données MySQL

Ensuite, cliquez avec le bouton droit de la souris sur les tables sous le nom du schéma et choisissez l'option Assistant d'importation de données de table.

Importer un fichier CSV dans une base de données MySQL

Une fenêtre s'affiche et vous guide tout au long du processus d'importation.

Choisissez le fichier CSV que vous souhaitez importer et cliquez sur Suivant.

Importer un fichier CSV dans une base de données MySQL

Vous pouvez utiliser une table existante (cette option nécessite la création d'une table avant le processus d'importation) ou créer une nouvelle table. Ici, nous choisissons de créer une nouvelle table.

Importer un fichier CSV dans une base de données MySQL

MySQL Workbench détecte le format de fichier et propose l'encodage et les types de données de colonnes à utiliser. Vous êtes libre de les modifier comme bon vous semble, mais nous allons procéder avec les valeurs suggérées.

Importer un fichier CSV dans une base de données MySQL

Voici le résumé des tâches qui seront exécutées :

Importer un fichier CSV dans une base de données MySQL

Et c'est fait !

Importer un fichier CSV dans une base de données MySQL

En cliquant sur le bouton Suivant, vous obtenez un rapport détaillé.

Importer un fichier CSV dans une base de données MySQL

Nous pouvons maintenant fermer l'assistant en cliquant sur le bouton Terminer.

Vérifions le succès du processus d'importation en interrogeant notre table nouvellement créée.

Importer un fichier CSV dans une base de données MySQL

Il ne fait aucun doute que l'importation d'un fichier CSV à l'aide de l'interface graphique est plus rapide et moins fastidieuse que l'importation en ligne de commande, mais il est bon de connaître les deux méthodes.

Pour comparer les processus d'importation de fichiers CSV sur différents moteurs de base de données, lisez notre article sur Comment importer des fichiers CSV dans PostgreSQL en utilisant PgAdmin. Et pour en savoir plus sur le processus d'exportation, l'article Comment exporter un fichier CSV à partir d'une requête T-SQL présente le processus d'exportation d'un fichier CSV dans le moteur de base de données MS SQL Server.

Importons quelques fichiers CSV !

Les fichiers CSV sont largement utilisés en raison de leur simplicité. Vous pouvez créer un fichier CSV à l'aide d'un simple éditeur de texte, tel que Notepad. Les fichiers CSV peuvent utiliser des points-virgules à la place des virgules ou mettre les valeurs entre guillemets doubles ou non.

Comme nous l'avons vu dans cet article, il est facile d'importer des fichiers CSV dans une base de données MySQL. Vous pouvez utiliser la ligne de commande ou l'interface graphique. La meilleure façon d'être à l'aise avec l'une ou l'autre option est de pratiquer, alors n'hésitez pas à essayer cet exemple et d'autres. Vous pouvez également utiliser nos cours interactifs sur MySQL pour en apprendre davantage sur cette base de données. Vous trouverez ici un aperçu des cours de notre filière Le SQL de A à Z in MySQL.

Bonne chance !