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

Gustavo du Mortier 30 janvier 2023
  1. Charger un fichier de données SQL pour importer un fichier CSV dans MySQL
  2. Utiliser HeidiSQL pour importer un fichier CSV dans MySQL
Comment importer un fichier CSV dans une table d'une base de données MySQL

Cet article du tutoriel présente deux méthodes pour importer des données d’un fichier de valeurs séparées par des virgules (CSV) dans une base de données MySQL et les insérer dans une table.

Nous présenterons différentes approches pour importer un fichier CSV dans MySQL. Cette tâche peut être effectuée par programmation, en exécutant une série de commandes SQL ; ou de manière interactive, en utilisant le dialogue d’importation de fichier d’un client graphique MySQL, tel que HeidiSQL.

Charger un fichier de données SQL pour importer un fichier CSV dans MySQL

Voyons d’abord comment importer le fichier CSV par programmation en utilisant l’instruction LOAD DATA INFILE SQL.

Avant de pouvoir importer le fichier, vous devrez créer la table contenant les données importées. Supposons que votre fichier CSV contienne des informations sur le livre, divisées en champs ISBN, Titre, Auteur et Prix de liste. Pour créer une telle table, vous devez exécuter une commande comme celle-ci :

CREATE TABLE BooksCSV (
    ISBN VARCHAR(255) NULL,
    title VARCHAR(255) NULL,
    author VARCHAR(255) NULL,
    ListPrice VARCHAR(255) NULL
);

Il est recommandé que tous les champs admettent des valeurs NULL et que la table n’ait pas de clé primaire, car on ne sait pas à l’avance si les données du fichier CSV sont complètes et normalisées.

Une autre recommandation est de n’utiliser que les champs VARCHAR même dans le cas de données numériques, afin d’éviter des erreurs dans le processus dues à des données mal formatées dans le fichier. Après l’importation des données, celles-ci peuvent être nettoyées directement dans le DataFrame, en lisant les lignes de la table et en effectuant les validations et corrections nécessaires.

Une fois que vous avez la table de destination des données, vous devez identifier le chemin du fichier CSV. Supposons que le chemin complet du fichier soit C:\csvdata\books.csv. Ensuite, pour importer ce fichier dans votre table, vous devez exécuter la commande :

LOAD DATA
INFILE 'c:/csvdata/books.csv'
INTO TABLE BooksCSV ` 

L’instruction LOAD DATA INFILE nécessite que vous spécifiiez le fichier source et la table de destination. Vous pouvez également spécifier d’autres paramètres, tels que le caractère séparateur de champ, le qualificatif de texte et l’existence de lignes d’en-tête.

Dans l’exemple suivant, les paramètres ajoutés précisent que les champs sont séparés par des virgules, que les chaînes de caractères sont entourées de guillemets doubles et que la première ligne doit être ignorée parce qu’elle contient des en-têtes de colonne.

LOAD DATA
INFILE 'c:/csvdata/books.csv'
INTO TABLE BooksCSV 
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
IGNORE 1 ROWS;

Maintenant que vous savez comment importer un fichier CSV dans MySQL par programmation.

Utiliser HeidiSQL pour importer un fichier CSV dans MySQL

Voyons comment le faire de manière interactive en utilisant un client graphique MySQL, tel que HeidiSQL.

Les étapes sont les mêmes que celles que nous avons vues ci-dessus :

  • Créer la table
  • Importer le contenu du fichier dans celui-ci.

Pour créer la table en utilisant HeidiSQL, vous devez connecter le client au serveur MySQL et sélectionner le DataFrame où vous voulez que les données soient importées. Ensuite, cliquez sur le bouton droit de le DataFrame et sélectionnez l’option “Créer une nouvelle table”.

mysql import csv capture d’écran 1

Vous devez saisir le nom de la table dans le champ correspondant et ajouter les colonnes. Pour ajouter une colonne, cliquez sur le bouton +, et entrez son nom et son type de données.

Dans cet exemple, la table s’appelle BooksCSV, et les champs sont les mêmes que ceux utilisés dans l’exemple précédent.

Une fois que vous avez fini d’ajouter des colonnes, cliquez sur Save pour créer la table dans le DataFrame.

Après avoir créé la table, vous pouvez importer les données à partir du fichier CSV. Mais avant de lancer le processus d’importation, vous devez activer le chargement des données locales sur les composants client et serveur en modifiant les paramètres de démarrage de chacun. Vous devez tenir compte de certaines considérations de sécurité lorsque vous activez le chargement des données locales. Pour en savoir plus, lisez cet article à partir de la documentation officielle de MySQL.

Lorsque vous êtes prêt à importer le fichier CSV, allez dans le menu Outils de HeidiSQL et sélectionnez l’option Importer un fichier CSV. Vous devez spécifier le chemin du fichier CSV à importer et sélectionner le DataFrame et la table où vous voulez insérer les données importées. Vous pouvez décocher les champs de la table s’il y a plus de champs dans la table que dans le fichier. Enfin, cliquez sur le bouton “Importer” et le processus commencera.

mysql import csv capture d’écran 2

Pour effectuer l’importation, l’interface graphique émet la même commande LOAD DATA que celle que nous avons décrite précédemment pour l’option programmatique, de sorte que le résultat final est à peu près le même - la table de le DataFrame sera alimentée avec les données lues dans le fichier CSV.

Pour plus d’informations sur l’utilisation de la commande LOAD DATA, consultez cet article dans la documentation officielle de MySQL.

Article connexe - MySQL Import