Cargar datos INFILE en MySQL

Preet Sanghavi 28 marzo 2022
Cargar datos INFILE en MySQL

En este tutorial, nuestro objetivo es explorar cómo importar datos de CSV utilizando datos INFILE en la base de datos MySQL.

Para leer datos de un archivo de texto o un CSV a una velocidad muy alta, usamos la declaración LOAD DATA INFILE en MySQL. Además, se introduce una palabra LOCAL si el archivo debe ser considerado por el host.

Antes de leer información de un archivo, debemos asegurarnos de que el archivo CSV o de texto reside en la base de datos y debe tener los permisos para ser leído.

La sintaxis básica de la sentencia LOAD DATA INFILE es la siguiente.

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

Ahora leemos un archivo CSV llamado fileCSV.csv en la base de datos students. Nombraremos nuestra tabla en la base de datos students como student_details.

Sin embargo, creamos un conjunto de datos ficticio para trabajar antes de comenzar. Creamos una tabla, student_details, junto con algunas filas.

-- 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");

Los datos en nuestro archivo CSV contienen información como stu_id, stu_firstName y stu_lastName pero con diferentes stu_id. Una instantánea de nuestro archivo CSV es la siguiente.

cargar datos en el archivo mysql

Comencemos primero por crear una base de datos llamada students. Esto lo podemos hacer con la siguiente consulta.

CREATE DATABASE students;

Podemos escribir la siguiente consulta para importar nuestro archivo CSV a nuestra base de datos 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;

Esto daría el siguiente resultado:

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

Si revisamos la tabla student_details en la base de datos students, obtendremos el siguiente resultado:

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

Podemos inferir del bloque de código anterior que hemos actualizado nuestra tabla student_details. Ahora tenemos los datos en el archivo CSV adjuntos a nuestra tabla.

Por lo tanto, con la ayuda del método LOAD DATA INFILE, podemos escribir de manera eficiente datos desde un archivo CSV o de texto externo a una tabla en 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