PDA

Ver la Versión Completa : CVS importar y exportar datos de Mysql 4.x y 5.x


JXJ
04-10-2006, 21:01:02
Holas.

hace unos dias, escuche que se maneja el intercambio de informacion
de las bases de datos, usando el formato CVS,
que por que es más bien como neutro, no restringido a la
aplicacion del estandar sql que implementen las bases de datos
ya sean mysql, firebird, mssql.

no se bien como es el formato o estructura de CVS

¿Saben como se puede importar y exportar de y a CVS
para mysql. ?

Gracias por su atencion.

roman
04-10-2006, 21:47:49
Creo que te refieres a CSV, no a CVS. CSV son las siglas (en inglés) de Comma Separated Values y se trata simplemente de guardar los datos en un archivo de texto poniendo una línea por cada registro y separando los campos por comas. Por ejemplo:


1,lennon,john
2,harrison,george
3,maccartney,paul
4,star,ringo


En algunas ocasiones, se encierran los campos entre comillas:


"1","lennon","john"
"2","harrison","george"
"3","maccartney","paul"
"4","star","ringo"


que me parece es lo compatible con Excel (puedes abrir un CSV directamente en Excel)

Un formato así puede tener sus ventajas, como dices, para transportar datos, pero hay que tener presente que son archivos planos que no guardan ninguna información acerca del tipo de datos de los campos.

En MySql puedes exportar datos a CSV con una variante de la sentencia SELECT:


select * into outfile 'C:/ruta/al/archivo.csv'
fields terminated by ',' enclosed by '"'
from tabla


La instrucción SELECT ... INTO OUTFILE permite exportar datos a distintos formatos de texto y tiene varios modificadores para ello. En el ejemplo, usé FIELDS TERMINATED BY ',' ENCLOSED BY '"' para indicar que el delimitador de campos es la coma y los valores estarán encerrados entre comillas dobles.

Observa que en la ruta al archivo se usan diagonales / en lugar de \. Si estás en Windows puedes usar doble diagonal \\.

Para importar datos de CSV se usa la instrucción LOAD DATA INFILE:


load data infile 'C:/ruta/al/archivo.csv'
into table tabla
fields terminated by ',' enclosed by '"'


que usa los mismos modificadores que SELECT ... INTO OUTFILE.

// Saludos

JXJ
04-10-2006, 23:24:18
Muchas Gracias Roman,
no sabia que se podia hacer directamente desde mysql

sakuragi
26-08-2007, 07:30:19
gracias por el dato.

saludos

(:

nosferatu177
26-09-2007, 23:35:26
hola roman hace ya tiempo que eh querido utilizar esta funcion para importar datos y aparece esto como respuesta: can't get stat of 'C:/archivo.csv'(Errcode: 2); eh revisado foros y el manual de mysql donde aparece la misma sintaxis pero simplemente no sale de ese error, no se a que se deba?? gracias de antemano
:(

JXJ
30-09-2007, 00:14:28
¿lo estas haciendo desde la consola de comandos de mysql.?

a mi me funciono tal cual esta escrito.

nosferatu177
03-10-2007, 18:02:17
sip:confused::o:(

Diego827
18-11-2010, 23:50:57
GRACIAS roman, Sabia que era posible desde MySQL pero... funcionará en servidores remotos por medio de programas de consulta del tipo cliente??? Voy a proba ahora mismo y me respondo a mi mismo jaja

Diego827
19-11-2010, 00:45:20
Para escribir en un archivo CSV incluyendo un filtro LIKE (de fechas en este caso) seria:

SELECT * FROM `nombrebasededatos`.`nombretabla`
WHERE Fecha LIKE '2010-11-15%'
INTO OUTFILE "C://archivox.csv"
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n\r';

Con esto ya lo tienen. Por cierto si funciona con servidores remotos pues se envia la sentencia completa. :)