Charger les données INFILE dans MySQL

Preet Sanghavi 28 mars 2022
Charger les données INFILE dans MySQL

Dans ce tutoriel, nous visons à explorer comment importer des données à partir de CSV en utilisant les données INFILE dans la base de données MySQL.

Pour lire les données d’un fichier texte ou d’un CSV à très grande vitesse, nous utilisons l’instruction LOAD DATA INFILE dans MySQL. De plus, un mot LOCAL est introduit si le fichier doit être pris en compte par l’hébergeur.

Avant de lire les informations d’un fichier, nous devons nous assurer que le fichier CSV ou texte réside dans la base de données et doit avoir les autorisations pour être lu.

La syntaxe de base de l’instruction LOAD DATA INFILE est la suivante.

LOAD DATA LOCAL INFILE "./csv_file.csv" INTO TABLE database_name.name_of_table; 

Nous lisons maintenant un fichier CSV nommé fileCSV.csv dans la base de données students. Nous nommerons notre table dans la base de données students comme student_details.

Cependant, nous créons un jeu de données factice sur lequel travailler avant de commencer. Nous créons une table, student_details, avec quelques lignes.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

Les données de notre fichier CSV contiennent des informations telles que stu_id, stu_firstName et stu_lastName, mais avec des stu_id différents. Un instantané de notre fichier CSV est le suivant.

charger les données dans le fichier mysql

Commençons d’abord par créer une base de données nommée students. Nous pouvons le faire avec la requête suivante.

CREATE DATABASE students;

Nous pouvons écrire la requête suivante pour importer notre fichier CSV dans notre base de données students.

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/fileCSV.csv' into table student_details fields terminated by ',' ENCLOSED BY '"' IGNORE 1 ROWS;

Cela donnerait la sortie suivante :

Query OK, 6 rows affected (0.01 sec)
Records: 6  Deleted: 0  Skipped: 0  Warnings: 0

Si nous vérifions la table student_details dans la base de données students, nous obtiendrons la sortie suivante :

1	Preet	Sanghavi
2	Rich	John
3	Veron	Brow
4	Geo	Jos
5	Hash	Shah
6	Sachin	Parker
7	David	Miller
9	Rich	John
10	Veron	Brow
11	Geo	    Jos
12	Hash	Shah
13	Sachin	Parker
14	David	 Miller

Nous pouvons déduire du bloc de code ci-dessus que nous avons mis à jour notre table student_details. Nous avons maintenant les données dans le fichier CSV annexé à notre tableau.

Par conséquent, à l’aide de la méthode LOAD DATA INFILE, nous pouvons écrire efficacement des données à partir d’un fichier CSV ou texte externe dans une table de MySQL.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub