De Excel a MySQL fácilmente y sin romperte la cabeza

1 Comentario

Hoy me vi en la necesidad de exportar una “base de datos” creada en Excel (Las comillas son porque no estoy del todo de acuerdo en que se hagan en Excel, existiendo soluciones específicas para ello), a un servidor con MySQL. Y como fue algo nuevo para mi, les dejo el como lo realicé, por si a alguien más le llegase a servir.

Antes que todo crearemos una pequeña tabla en Excel a manera de ejemplo, con 4 campos como se observa en la imagen de arriba, o bien, si ya tienen su tabla hecha, se pueden ahorrar este paso.

Lo que sigue es guardar el archivo, pero no como documento de Excel. En las opciones de “Guardar como” seleccionaremos la que mencione “CSV (Delimitado por comas)(*.csv)“, o algo similar.

Con Excel ya terminamos. Pero tenemos que modificar algo en este archivo. Así que lo abrimos en nuestro editor de texto favorito, y vamos a eliminar la primera línea. Esta es la que tiene el título de los campos, y no nos interesa, ya que de dejarla, se rellenaría nuestra base de datos en MySQL con esos valores.

Ahora sí, manos a la obra con phpmyadmin. Primero tenemos que crear una nueva base de datos, acto seguido creamos una tabla, y añadiremos los 4 campos correspondientes: nombre, sexo, estado_civil y nacionalidad. Con sus respectivos atributos y toda la cosa.

El nombre de mi tabla es “fulanitos”, en una base de datos que llamé “xxx”. En este caso todos serán del tipo VARCHAR, con longitud más o menos calculada de rápido, a manera de ejemplo solamente. Y vemos que todo salió bien:

Sigue la última parte. Es aquí donde radica el “truco”. Que no es más que una simple sentencia SQL que lo que hará será tomar un archivo como referencia, leerlo, e interpretarlo según dos parámetros que le indicaremos:

  • Los datos que van en cada campo se separan mediante una coma (“,”)
  • Los diferentes registros se separan por un salto de línea (“\n”)

La sentencia es la siguiente, y la debemos realizar desde la sección de “SQL”, que está en el menú superior:

LOAD DATA INFILE ‘ubicación/del/archivo’ INTO TABLE ‘nombre_de_la_tabla’

FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\n';

Y listo, si todo salió bien (Si hubo errores, revisa bien la ubicación del archivo que indicaste), tendremos nuestra BDD de Excel exportada a MySQL:

Tip: En mi caso, en Ubuntu, coloqué el archivo .csv en el escritorio, y la ruta que seguí para llegar a él desde la sentencia SQL fue:  ../../../../home/jonateo/Desktop/bdd.csv

Para que lo tengan en cuenta, es una ruta un poco rara sí, pero los “../” son para retroceder y poder llegar a las carpetas padre.

 

Comentarios

  • Pako Sifuentes

    funcional!