Como usar la extensión Spatial de MySQL

10 marzo 2009

Si necesitas almacenar datos espaciales en MySQL, pero sobre todo realizar operaciones espaciales sobre ellos, te recomiendo que estudies la extensión Spatial de MySQL (disponible desde MySQL 5.x).

En el siguiente enlace obtendrás un manual de uso (en inglés):
How to use MySQL Spatial extension.

La referencia oficial en:

MySQL Spatial extension.


MySQL – Selección (select) parametrizando el nombre de tabla y un campo

13 febrero 2009

En el siguiente ejemplo se muestra como crear un procedimiento almacenado que recibe dos parámetros (nombre de tabla y nombre de columna) y realiza una selección (select) en esa tabla y campo, creando así un método para hacer selecciones (select) parametrizando el nombre de tabla y un campo.


DELIMITER $$

DROP PROCEDURE IF EXISTS ejemplo$$
CREATE PROCEDURE ejemplo(IN tabla CHAR(64), IN columna CHAR(64))
READS SQL DATA
COMMENT 'Hace select de una tabla y campo parametrizado'
BEGIN

   SET @s = CONCAT('SELECT ' , columna , ' FROM ' , tabla);
   PREPARE stmt FROM @s;
   EXECUTE stmt;

END $$

DELIMITER ;

Ahora tan solo hay que llamarlo con el nombre de tabla y campo que queramos:

call ejemplo('mitabla', 'micampo');


Hacer selección (SELECT) por orden aleatorio en MySQL

12 enero 2009

Si queremos hacer una consulta (select) en MySQL que nos obtenga un conjunto de registros con un orden aleatorio, tendremos que usar la función RAND(), tal y como muestro en el siguiente ejemplo:

SELECT * FROM tbl_elbitcampeador ORDER BY RAND();

Esta consulta obtiene todos los registros, con todos sus campos, de la tabla tbl_elbitcampeador y ordena dichos registros aleatoriamente.

Este método combinado con LIMIT es una manera muy útil de obtener un muestreo aleatorio de N elementos. Por ejemplo:

SELECT * FROM tabla_elbitcampeador ORDER BY RAND() LIMIT 100;

Obtiene 100 elementos aleatoriamente de la tabla tbl_elbitcampeador.

La función RAND() no está implementada haciendo uso de un perfecto algoritmo de generación aleatoria, pero nos ofrece una poderosa y rápida herramienta de selección aleatoria en una tabla.


Preparar MySQL en Linux para que sea accesible desde la red

22 diciembre 2008

Cuando instalamos MySQL en nuestro sistema Linux, normalmente, la instalación por defecto solo permite acceder al motor de la base de datos desde la misma máquina y como localhost (o 127.0.0.1) pero en ningún caso con la IP local propia, y mucho menos desde otros ordenadores, desde nuestra red local o desde Internet. Esto es así por motivos de seguridad.

Si queremos que sea accesible en local desde la IP de la propia máquina, o queremos que sea accesible desde la red local o Internet tendremos que realizar una breve modificación en el fichero de configuración my.cnf. Dicho fichero, en instalaciones normales, se encuentra en el directorio /etc/mysql.

Buscaremos la línea

bind-address = 127.0.0.1

y la sustituiremos por

bind-address = IP_local_maquina

donde IP_local_maquina es la IP local de la máquina en la que está instalado MySQL, por ejemplo 192.168.1.10, quedando:

bind-address = 192.168.1.10

Ahora simplemente tendremos que reiniciar nuestro MySQL:

/sbin /service mysqld restart

Y ya tendremos nuestro MySQL configurado para ser accedido desde el exterior. No olvidar abrir su puerto, por defecto 3306, si tenemos instalado un software de firewall, o en el router si va ser accedido desde Internet.


Chuleta de MySQL

17 diciembre 2008

Curiosa y completa chuleta para MySQL. Consta de: Funciones, tipos de datos, funciones en PHP y algunos ejemplos.

Chuleta MySQL (1)

Chuleta MySQL (1)

Chuleta MySQL (2)

Chuleta MySQL (2)

Está disponible en PNG y PDF.

Puedes descargarte esta hoja de referencia desde el siguiente enlace:

Chuleta de MySQL.


Planificador de eventos por fecha/hora en MySQL 5.1

15 diciembre 2008

Como comentaba en un artículo anterior, MySQL 5.1 provee de una nueva característica que permite especificar que hacer a una determinada fecha/hora o cada cierto tiempo una sentencia SQL o llamada a un procedimiento almacenado.

Pues bien, en los siguiente enlaces de la web oficial de MySQL 5.1 especifican que hacer y cómo:

Usando el planificador de eventos.

El planificador de eventos y la asignación de permisos.

Mostrar eventos creados.


XML en MySQL 5.1

12 diciembre 2008

En un artículo que escribí hace muy poco, llamado “MySQL 5.1 disponible para producción“, comentaba que uno de los aspectos novedosos de esta versión respecto a la anterior es la posibilidad de manipular cadenas XML almacenadas en nuestras tablas.

Pues bien, pongo a continuación un enlace a la web oficial de MySQL donde detallan muy claramente que ofrecen al respecto con ejemplos de uso:

Funciones XML en MySQL 5.1.


MySQL 5.1 disponible para producción

6 diciembre 2008

Aunque la versión 5.1 de MySQL lleva bastante tiempo disponible para descargar desde la web oficial de MySQL, es ahora cuando está versión es la última versión de la serie 5.xx disponible para entornos de producción.

Se puede obtener desde la zona de descargas de la web oficial de MySQL.

Algunas de las mejoras más destacables de esta versión respecto a la anterior son:

  • Establecer tareas programadas: Es posible definir eventos por fechas / horas para que se ejecuten procedimientos almacenados o sentencias SQL.
  • XML: En las consultas SQL es posible hacer búsquedas dentro de datos XML (esta característica lleva disponible desde hace bastante tiempo en otros motores de base de datos como Microsoft SQL Server).

Seguir

Get every new post delivered to your Inbox.