número - importar excel a mysql
¿Cuál es la forma más fácil de importar una nueva tabla en MySQL v5 desde CSV? (9)
Estoy ejecutando MySQL 5 en un servidor Linux en mi red local. Ejecutando Windows XP para mi escritorio. Eché un vistazo a las herramientas de GUI de MySQL, pero no creo que ayuden. No puedo instalar Apache en el servidor remoto y usar algo como PHPmyAdmin.
Si no te importa usar un poco de software comercial, Navicat ( http://mysql.navicat.com/ ) es un software muy útil y está disponible para Mac, Windows y Linux. Lo uso regularmente para importar un gran archivo CSV en una base de datos.
Usaría un editor de hoja de cálculo para hacer un conjunto de declaraciones SQL. Coloque una nueva columna al comienzo y agregue insert into tablename values(''
. Agregue otras columnas para separar los datos con código como '''',''
. Finalice con '''');
. Use la función de autocompletar para arrastrar estas celdas a tantas filas como sea necesario. Copie la hoja completa en un editor de texto sin formato y elimine las pestañas sobrantes, dejándolo con un conjunto simple de instrucciones de inserción.
Esta es una solución que puedo usar para cualquier sistema de base de datos y cualquier formato de archivo de hoja de cálculo. Además, es fácil completar la hoja de cálculo desde fuentes como otras bases de datos, o copiar y pegar desde una página web. También es bastante rápido y está disponible desde cualquier máquina de escritorio, usando Excel, OpenOffice o Google Docs.
Ver mi hoja de cálculo de ejemplo en las versiones de Excel y OpenOffice .
Uso SQLyog en mi sistema Windows, que tiene una Edición de comunidad gratuita y tiene una opción para importar desde CSV.
Nunca utilicé esta opción yo mismo, así que no puedo decirte lo bueno que es. Sin embargo, SQLyog ha sido excelente para todas las otras cosas que he usado.
Escriba un script simple de Python que analiza el archivo CSV y lo inserta en la tabla.
Mira el módulo csv y mysqldb .
eche un vistazo a @ load data infile: http://dev.mysql.com/doc/refman/5.0/en/load-data.html
Desde el shell de MySQL o el buscador de consultas ...
Si el CSV no tiene encabezado:
LOAD DATA INFILE ''mycsvfile.csv'' INTO TABLE mytable;
Si el CSV tiene un encabezado:
LOAD DATA INFILE ''mycsvfile.csv'' INTO TABLE mytable IGNORE 1 LINES;
Acabo de hacer esto usando LOAD DATA INFILE
pero vale la pena señalar que no es tan simple como el ejemplo de Gareth (Kai tiene razón en que deberías mirar la documentación ). Para importar correctamente valores separados por comas, utilicé esto:
LOAD DATA LOCAL INFILE ''mycsvfile.csv'' INTO TABLE mytable
FIELDS TERMINATED BY '',''
ENCLOSED BY ''"''
LINES TERMINATED BY ''/n''
IGNORE 1 LINES;
Esto supone un archivo CSV con comillas alrededor de cada campo y una sola fila de encabezado en la parte superior. (Probablemente no necesite las LINES TERMINATED BY
ya que debe ser el valor predeterminado, pero es una buena práctica ser explícito).
Toad for MySQL lo hará muy bien, con un control considerable sobre la importación (columnas que combinan selectivamente, por ejemplo) y, de forma más duradera, es gratis.
También utilicé SQLYog, pero debe tener la versión comercial para esto, ya que la importación desde el archivo no está disponible en la edición de la comunidad.
Toad es un excelente software que viene en versiones para todas las principales bases de datos y también he usado las versiones de MSSQL y Oracle en el pasado. Recomendado.
La aplicación Toad hace maravillas y es freeware. Si tiene un archivo CSV adecuado, creará la tabla e importará todos los datos por usted.