Archivo de la etiqueta: mysql

Cargar datos desde un archivo CSV

MySQL

Hoy tuve lista una aplicación para la cual sólo me faltaba recargar la información inicial en una tabla de la base de datos. Los datos se encuentran inicialmente en un archivo CSV ( [en] comma separated values = [es] valores separados por coma ).

Podemos emplear la siguiente sintaxis:

LOAD DATA LOCAL INFILE '<RUTA>/<ARCHIVO>'
INTO TABLE <NOMBRE  DE TABLA>
FIELDS TERMINATED BY <CARACTER>
LINES TERMINATED BY <CARACTER>
(<CAMPO1>, <CAMPO2>);

Ejemplo:

LOAD DATA LOCAL INFILE '/home/adagio/files/reggaebands/bands-name-country_code.csv'
INTO TABLE bands
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(name, country_code);

El sistema me informó que habían 3 warnings. Procedo a inspeccionarlos con el siguiente comando:

show warnings;

Veo que tienen que ver con el separador de valores y la primera línea que ha sido truncada. El caso del separador se debía a que empleo valores que contienen una coma (“,”). Así que reemplazo el caracter de separación en el script SQL de coma a punto y coma; realizo lo mismo en el archivo CSV. Y para evitar que se procese la primera línea empleo el parámetro IGNORE LINES. Antes de ejecutar la sentencia limpio los registros con delete y reinicio el puntero del valor autoincrementable.

DELETE FROM bands;
TRUNCATE TABLE bands;

Ahora sí la sentencia SQL final y correcta:

LOAD DATA LOCAL INFILE '/home/adagio/files/reggaebands/bands-name-country_code.csv'
INTO TABLE bands
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(name, country_code);

Nos vemos pronto!

Fuentes:

MySQL 5.0 Reference Manual: LOAD DATA INFILE Syntax
scriptygoddess: Reset autoincrement value in mysql table

Cambiar el tipo de dato de un campo en MySQL

MySQL

Hoy tuve que realizar un cambio de tipo de dato en una base de datos MySQL para que una aplicación de terceros pueda ejecutar algunas operaciones de manera automática. Comparto el método en lenguaje SQL.

Sintaxis:

ALTER TABLE <NOMBRE DE TABLA> MODIFY <NOMBRE DE COLUMNA> <TIPO DE DATO>;

Ejemplo:

ALTER TABLE bands MODIFY country_code VARCHAR(2);

Nos vemos

¿Cómo crear una Base de Datos en línea de comandos MySQL?

MySQL

Para crear una Base de Datos en línea de comandos MySQL podemos correr el siguiente query:

CREATE DATABASE  DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL PRIVILEGES ON .* TO @localhost IDENTIFIED BY "";
FLUSH PRIVILEGES;
EXIT

En el que reemplazaremos convenientemente
por el nombre deseado para la base de datos
por el nombre del usuario para la base de datos
por la contraseña para el usuario

Nos vemos 🙂

Obtener el Tamaño de la Base de Datos en MySql

MySQL

Para obtener el tamaño de la base de datos en MySQL podemos correr el siguiente query:

SELECT
 table_schema "Base de Datos",
 sum( data_length + index_length ) / 1024 / 1024 "Tamaño en MB"
FROM
  information_schema.TABLES GROUP BY table_schema;

Obtendremos dos columnas:
– La primera, de nombre “Base de Datos” con los nombres de las bases de datos; y
– La segunda, de nombres “Tamaño en MB” con los tamaños en Megabytes correspondientes a las bases de datos.

Fuente:
GET THE DATABASE SIZE FROM THE MYSQL QUERY BROWSER

Publicado por Franco Cedillo

Arquitectura de Servidores de Aplicación Web

Hoy les voy a presentar la arquitectura de servidores de una aplicación web que estoy desarrollando.
El usuario se conecta a través de un navegador web (Firefox) a la Internet y accede al sitio web que publica el Servidor Web (Apache con el módulo PHP activo).
La gestión de casos emplea persistencia de datos en el Servidor de Base de Datos (MySql) y emplea tanto entradas como notificaciones a través del correo electrónico (Agente de Tranporte de Correo Sendmail). La interfaz para el usuario es generada dinámicamente gracias al lenguaje PHP.
Dentro del contenido web el usuario encontrará el Java Applet que le permitirá realizar la llamada gracias al protocolo IAX2, la implementación de este protocolo (IaxClient) se comunicará con el servidor VoIP (Asterisk) para realizar el registro del usuario y enviar el identificador de usuario al que se desea llamar. Los mensajes para remarcar un número o colgar también son recibidos por el servidor VoIP.
web application arquitecture