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.
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.