Volver a la lista de artículos Artículos
Lectura de 9 minutos

Cómo importar un archivo CSV a una base de datos MySQL

Los archivos CSV almacenan y transfieren datos entre bases de datos. Siga leyendo para descubrir lo fácil que es trabajar con archivos CSV en una base de datos MySQL.

Los archivos CSV son uno de los formatos de intercambio de datos más antiguos y siguen siendo muy utilizados por los profesionales de TI de diversos ámbitos. Es habitual que los recursos de datos en línea y diferentes software de bases de datos ofrezcan sus cargas y descargas de datos en formato CSV.

En este artículo, repasaremos brevemente qué es un archivo CSV y cómo trabajar con él. Aprenderá a importar un archivo CSV en una base de datos MySQL utilizando una herramienta de línea de comandos o una interfaz gráfica de usuario como MySQL Workbench. Aunque esta última es mucho más rápida y sencilla, es importante conocer y practicar ambas.

Si no ha trabajado antes con una base de datos MySQL, asegúrese de consultar nuestros cursos interactivos:

Ambos cursos terminan con un cuestionario para que puedas verificar cuánto has aprendido. También puedes seguir este artículo para aprender a instalar una base de datos MySQL en un PC con Windows. No es necesario para ninguno de los dos cursos, pero tener una base de datos MySQL en tu ordenador te dará algo con lo que practicar más adelante.

Así que, empecemos con nuestra revisión del formato de archivo CSV.

Acerca de los archivos CSV

CSV significa "Valores Separados por Comas". Un archivo CSV es un archivo de texto que almacena datos tabulares. Cada fila de un archivo CSV representa una fila de una tabla. Normalmente, los valores de las columnas están separados por una coma (de ahí el nombre, valores separados por comas), pero puede utilizar otros separadores, como un punto y coma o un tabulador. Normalmente, la primera fila de un archivo CSV almacena las cabeceras de las columnas y las filas siguientes los datos.

Ahora se preguntará qué ocurre si un valor contiene un carácter coma. Se trata como un caso especial: el valor va entre comillas dobles. Por ejemplo, el valor 12.34 va sin comillas dobles, pero el valor 12,34 debe escribirse como "12,34" para evitar que se considere como dos valores (12 y 34) en lugar de un valor (12,34).

Veamos un ejemplo de archivo CSV llamado countries.csv que posteriormente importaremos a la base de datos 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

Puede que no sea tan claro como una tabla, pero definitivamente se puede ver el patrón. La primera fila almacena encabezados de columna separados por comas, y las siguientes filas almacenan valores separados por comas. Tenga en cuenta que cualquier valor que contenga una coma va entre comillas dobles.

A continuación se muestra una tabla basada en el archivo countries.csv:

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

¿Por qué importar un archivo CSV en una base de datos?

Los archivos CSV utilizan un formato de texto simple para almacenar datos. Las bases de datos relacionales y los archivos CSV se desarrollaron por primera vez más o menos al mismo tiempo, en la década de 1970. Desde entonces, los archivos CSV se han utilizado para transferir datos entre bases de datos.

Podemos exportar datos en formato de archivo CSV desde una base de datos e importarlos en este formato a otra base de datos (por ejemplo, para su posterior procesamiento y análisis). Además, varios recursos de datos en línea y herramientas de bases de datos ofrecen cargas y descargas de datos en formato CSV. Por lo tanto, CSV es un formato de archivo muy común para transferir datos.

El proceso de importación de archivos CSV es rápido y sencillo. Es mucho mejor que crear una tabla e insertar los datos manualmente. Por eso los archivos CSV, a pesar de su naturaleza simple, desempeñan un papel tan crucial en el procesamiento y análisis de datos.

Importar un archivo CSV a una base de datos MySQL

En la base de datos MySQL, hay dos opciones para importar un archivo CSV. Una es utilizar una herramienta de línea de comandos y la otra es utilizar una Interfaz Gráfica de Usuario, o GUI. Veamos cada una de ellas.

Importar un archivo CSV a MySQL utilizando la línea de comandos

Siga los siguientes pasos para importar un archivo CSV en la base de datos MySQL a través de la herramienta de línea de comandos.

Conectar una base de datos

Asumiendo que tiene una base de datos MySQL instalada en su ordenador, puede utilizar el Cliente de Línea de Comandos MySQL (mostrado abajo):

Importar un archivo CSV a una base de datos MySQL

Puede conectar su base de datos ejecutando el comando mysql --host=localhost --user=username --password y proporcionando una contraseña:

Importar un archivo CSV a una base de datos MySQL

Tenga en cuenta que tanto el Cliente de Línea de Comandos MySQL como la herramienta estándar de línea de comandos proporcionan el mismo prompt mysql.

Importar un archivo CSV

Antes de importar un archivo CSV, es necesario crear una tabla manualmente con los tipos de datos adecuados para cada columna.

Así que primero vamos a crear un nuevo esquema utilizando el comando CREATE SCHEMA. Luego ejecutaremos el comando USE para asegurarnos de que está dentro del esquema recién creado. Por último, crearemos una nueva tabla utilizando el comando CREATE TABLE.

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

El comando CREATE SCHEMA seguido de un nombre de esquema crea un nuevo esquema llamado data. Y el comando USE seguido de un nombre de esquema asegura que trabajamos dentro del esquema recién creado. Una vez completado esto, creamos una nueva tabla utilizando el comando CREATE TABLE.

Ahora podemos cargar la tabla countries con los datos de nuestro archivo CSV.

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

Este comando especifica lo siguiente:

  • El archivo desde el que se cargan los datos: LOAD DATA INFILE 'countries.csv'
  • La tabla en la que se cargan los datos: INTO TABLE countries
  • El carácter que separa los valores: FIELDS TERMINATED BY ','

Tenga en cuenta que si utiliza un separador diferente, como un punto y coma o un tabulador, debe actualizar esta línea para incluir su carácter separador: FIELDS TERMINATED BY ';' o FIELDS TERMINATED BY '  '

  • Si algunos o todos los valores van entre comillas dobles, incluya esta línea: ENCLOSED BY '"'
  • El carácter que termina las líneas: LINES TERMINATED BY '\n'
  • La información para ignorar la primera fila, que contiene la cabecera: IGNORE 1 ROWS;

Aquí está la salida de consola de todos los comandos:

Importar un archivo CSV a una base de datos MySQL

Verifiquemos el proceso de importación ejecutando la sentencia SELECT.

La línea de comandos devuelve un conjunto de datos correcto, aunque el formato puede verse alterado:

Importar un archivo CSV a una base de datos MySQL

Verifiquemos lo mismo utilizando la interfaz gráfica de usuario.

Importar un archivo CSV a una base de datos MySQL

Ahora estamos seguros de que el proceso de importación se ha realizado correctamente.

Veamos cómo hacer lo mismo utilizando la GUI.

Usando una GUI MySQL

Usaremos MySQL Workbench, uno de los GUIs más populares para MySQL. Siga los siguientes pasos para importar un archivo CSV a una base de datos MySQL a través de la Interfaz Gráfica de Usuario.

Conectar una base de datos

En MySQL Workbench, puede conectarse a cualquier base de datos haciendo clic en el signo + junto a Conexiones MySQL en la página de inicio. Aparecerá una ventana que le pedirá que proporcione los detalles de la conexión, como el nombre de la conexión, el método de conexión, el nombre de host, el puerto, el nombre de usuario y la contraseña.

Importar un archivo CSV a una base de datos MySQL

Ahora, pruebe su conexión haciendo clic en el botón Probar conexión. Introduce la contraseña y, si la prueba se realiza correctamente, aparecerá este mensaje:

Importar un archivo CSV a una base de datos MySQL

Cierra ambas ventanas pulsando el botón Aceptar. Ahora podemos proceder a importar un archivo CSV.

Importar un archivo CSV

Cuando se utiliza una GUI, no es necesario crear una tabla antes de importar un archivo CSV.

El primer paso es crear un nuevo esquema (si desea utilizar un nuevo esquema en lugar de un esquema existente). Puede hacerlo de dos maneras:

  • Ejecute el comando CREATE SCHEMA en la ventana de consulta: Importar un archivo CSV a una base de datos MySQL
  • Cree un esquema desde la interfaz GUI: Importar un archivo CSV a una base de datos MySQL

A continuación, haga clic con el botón derecho del ratón en las Tablas bajo el nombre del esquema y elija la opción Asistente para importar datos de tablas.

Importar un archivo CSV a una base de datos MySQL

Aparecerá una ventana que le guiará a través del proceso de importación.

Ahora, elija el archivo CSV que desea importar y haga clic en Siguiente.

Importar un archivo CSV a una base de datos MySQL

Puede utilizar una tabla existente (esta opción requiere que cree una tabla antes del proceso de importación) o crear una tabla nueva. En este caso, elegimos crear una tabla nueva.

Importar un archivo CSV a una base de datos MySQL

MySQL Workbench detecta el formato del archivo y sugiere la codificación y los tipos de datos de columna que se deben utilizar. Eres libre de modificarlo como creas conveniente, pero procederemos con los valores sugeridos.

Importar un archivo CSV a una base de datos MySQL

Este es el resumen de las tareas que se ejecutarán:

Importar un archivo CSV a una base de datos MySQL

¡Y listo!

Importar un archivo CSV a una base de datos MySQL

Al pulsar el botón Siguiente, obtendrá un informe detallado.

Importar un archivo CSV a una base de datos MySQL

Ahora, podemos cerrar el asistente haciendo clic en el botón Finalizar.

Verifiquemos el éxito del proceso de importación consultando nuestra tabla recién creada.

Importar un archivo CSV a una base de datos MySQL

No hay duda de que la importación de un archivo CSV mediante la GUI es más rápida y menos engorrosa que la importación mediante la línea de comandos, pero conviene conocer ambas.

Para comparar los procesos de importación de archivos CSV en diferentes motores de bases de datos, lea nuestro artículo sobre Cómo importar CSVs a PostgreSQL usando PgAdmin. Y para aprender sobre el proceso de exportación, How to Export a CSV File From a T-SQL Query presenta el proceso de exportación de un archivo CSV en el motor de base de datos MS SQL Server.

Importemos algunos archivos CSV

Los archivos CSV son ampliamente utilizados debido a su simplicidad. Puede crear un archivo CSV con un editor de texto sencillo, como el Bloc de notas. Los archivos CSV pueden utilizar punto y coma en lugar de comas o encerrar los valores entre comillas dobles o no.

Como hemos visto en este artículo, es fácil importar archivos CSV a una base de datos MySQL. Puede utilizar la línea de comandos o una GUI. La mejor manera de sentirse cómodo con cualquiera de las dos opciones es practicar, así que adelante y pruebe este y otros ejemplos. También puedes utilizar nuestros cursos interactivos de MySQL para aprender más sobre esta base de datos. Aquí encontrará una visión general de los cursos en nuestro Curso completo de SQL en MySQL pista.

Le deseamos buena suerte.