Almacenamiento y tratamiento de datos geolocalizados en PostgreSQL con PostGIS

¡Buenas a tod@s!

Hoy voy a explicar una operación básica pero necesaria para almacenar y  tratar con datos geolocalizados. Siguiendo un poco el hilo del tutorial, ya tenemos nuestra base de datos PostgreSQL con el módulo PotGIS creada, así como creada nuestra tabla con el tipo de dato espacial haciendo uso del SRID 4326, por lo que ahora vamos a ver cómo se almacena un punto, definido por su longitud y su latitud, en ella. read more

Leer más » 3 Comentarios

Lo mejor de mi RSS del 12 al 18 de mayo de 2014

Mayo es un mes en general bastante activo. El verano todavía no ha llegado, ni las jornadas reducidas ni las vacaciones escolares y el fin de curso, aprieta el ritmo de muchos sectores. La blogosfera hispana no podía ser menos y estos días hemos podido disfrutar de muchos y buen contenido, aquí hay una selección personal.

Las consultas a base de datos son operaciones que muchos conocemos y en las que podemos aplicar multitud de variantes para conseguir para un mismo resultado, mejores tiempos. Un ejemplo, el uso de los JOIN, ¿sabéis aplicarlos? Explicación gráfica de los Join en SQL y sus resultados – Genbeta Dev A todo el que le enseño un WordPress, le llama muchísimo la atención la primera vez el efecto “drag and drop” de los widgets, sin embargo, la gestión de widgets es mucho más que eso, un ejemplo son los widgets inactivos: Los widgets inactivos de WordPress – Ayuda WordPress Hace años los trasvases de información solían hacerse en XML, hoy en día lo normal es usar JSON, si quieres un conversor en línea, aquí lo tienes:

Convierte tus XML a JSON y viceversa, online – Genbeta Dev read more

Leer más » 1 Comentario

Ordenando consultas con valores NULL en MySQL

MySQL logoCuando trabajamos con bases de datos, normalmente tendremos casos en los que existan valores nulos tanto en nuestras tablas como en el resultado de nuestras consultas. Sin embargo, esta realidad, también provoca que algunas acciones como las ordenaciones sean problemáticas. Para poder superar estas dificultades disponemos de funciones como coalesce() (buscad dentro del enlace).

La función coalesce()

¿Qué hace esta función? Recibe una serie de parámetros y devuelve el primero que no es nulo. read more

Leer más » 3 Comentarios

SQL – No te olvides de poner el WHERE en el DELETE FROM

Para alegrar este fin de semana, os traigo un videoclip realizado por mi compañero Jorge Rubira Santos (si seguíais hace tiempo El podcast de Linux Hispano seguro que le conoceréis).

Este vídeo no se trata nada más que de un consejo para aquellos que programen en SQL. Tiene una música pegadiza que seguro que se os quedará en la cabeza y os permitirá no cometer este fatídico error.

Aquí os dejo el videoclip y recordad: no os olvidéis de poner el WHERE en el DELETE FROM.

read more

Leer más » 3 Comentarios

Listar todas las tablas de una base de datos en MySQL

Siempre que trabajamos con MySQL o con cualquier otro sistema gestor de bases de datos relacional tenemos la costumbre de hacer operaciones sobre las tablas y no sobre las bases de datos en sí. Básicamente lo único que hacemos es:

 USE mi_base_de_datos

O con el lenguaje que estemos usando la elegimos y trabajamos sobre ella o como mucho haciendo consultas entre varias bases de datos.

Logo MySQL

Sin embargo, hoy trabajando en un proyecto que estoy haciendo para un cliente de CODECTION, he tenido la necesidad de listar y operar sobre los nombres de las tablas de una base de datos. ¿Cómo lo he hecho? read more

Leer más » 13 Comentarios

Optimización MySQL: evita usar el comodín al realizar consultas

MySQL optimización rendimientoLa velocidad es algo básico en la red. Es de tal relevancia, que hoy en día se valora como un factor más a la hora de posicionarte en el mundo de los buscadores, el llamado Google Speed Index. La red está llena de sitios hacen consultas a bases de datos MySQL, así que una buena idea sería optimizar esta interacción.

Comenzaremos hoy con algo básico. A la hora de hacer consultas es muy típico que hagamos algo así como:

SELECT *
FROM personas

Cuando en realidad solo queríamos dos campos de la tabla personas: nombre y apellidos por ejemplo:

Leer más » 2 Comentarios

¿Dónde almacena los datos MySQL?

Seguro que muchos de vosotros habréis oído hablar de MySQL e incluso otros muchos lo habréis llegado a manejar. MySQL es una base de datos relacional, en la que almacenamos datos que luego manejamos usando sentencias SQL.

MySQL logo

Sin embargo, esos datos tienen que guardarse en algún sitio. El lugar suele ser: /var/lib/mysql pero para asegurarnos, debemos mirar el fichero my.cnf. Este fichero se encuentra en:

  • Ubuntu, Debian y derivados: /etc/mysql/my.cnf
  • Red Hat, Fedora y derivados: /etc/my.cnf

Allí podemos ver el valor de datadir. La forma concreta en que se almacenan los datos dependerá del motor de almacenamiento que uses: MyISAM, InnoDB, etc.

Leer más » 7 Comentarios

Diferencia entre DELETE, TRUNCATE y DROP en SQL

Cuando manejamos una base de datos SQL, además de manejar creaciones de tablas (CREATE TABLE), inserciones (INSERT), consultas (SELECT) y actualizaciones (UPDATE); dentro de las operaciones básicas también tenemos las que implican borrado. Borrado de diferentes tipos: de filas que cumplan una serie de condiciones, de todos los datos de una tabla o de la tabla con su estructura. Veamos cada una de ellas, con su sintaxis y un ejemplo.

Manejamos para el ejemplo una tabla entradas, que trata sobre la entradas de un blog y que almacena básicamente la siguiente información: identificador, título, cuerpo y tiempo de salida.

DELETE

Borra una serie de filas de la tabla. Podemos usar una claúsula WHERE para limitar las filas a borrar, a las que cumplan una condición. La sintaxis sería:

DELETE FROM nombre_tabla WHERE condicion

Leer más » 3 Comentarios

Habilitar o deshabilitar rápidamente todos los plugins de WordPress desde la base de datos

Cuando sufrimos el temido “pantallazo blanco de la muerte” de WordPress, podemos estar sufriendo, entre otros problemas, una incompatibilidad entre plugins o de un plugin en particular. No podemos acceder al panel de administración y necesitamos tratar de resolverlo cuanto antes. ¿Qué hacemos? Deshabilitar todos los plugins desde la base de datos. Veamos cómo hacerlo.

WordPress Plugins

Ésto puede ser también útil no sólo para problemas de pantallazos, sino para ahorrar tiempo en la habilitación o deshabilitación de plugins.

Veamos, lo primero que tenemos que hacer es acceder a nuestra base de datos. Con los datos de inicio de sesión que tiene WordPress almacenados internamente en “wp-config.php” podemos acceder usando un cliente como:

Leer más » 1 Comentario

¿Cómo hacer una llamada que involucre a dos bases de datos?

Cuando trabajamos con una base de datos con SQL (no quiero olvidarme de esas menos conocidas pero no por ello menos útiles NoSQL), es muy frecuente realizar consultas que involucren dos tablas pero no es tan normal, que estas dos tablas estén en bases de datos diferentes.

En el caso particular de MySQL (aunque se realiza de forma similar en otros sistemas gestores de bases de datos) hacemos lo siguiente para realizar una consulta: read more

Leer más » 6 Comentarios

Programar copias de seguridad automáticas de PostgreSQL

Si hace unos días hablábamos de cómo hacer backup y restaurar copias de seguridad con MySQL, hoy vamos a hablar de cómo hacerlo con PostgreSQL, incluyendo un detalle más: la automatización para que se ejecute de forma periódica y automática.

pg_dump

Si con MySQL usamos mysqldump, con PostgreSQL utilizamos pg_dump. ¿Cuál es la sintaxis básica? read more

Leer más » 6 Comentarios

Resetear autoincremento en MySQL

La posibilidad de generar valores automáticos para nuestras claves primarias gracias a la propiedad: AUTO_INCREMENT presente en muchos sistemas gestores de bases de datos modernos, es además de cómodo, seguro para quien lo implementa.

Sin embargo, en caso de borrar todos los datos de una tabla y volver a introducirlos, el valor del campo con AUTO_INCREMENT activado, en lugar de empezar desde 1, seguirá con la cuenta anterior. Esto es un detalle sin mucha importancia en algunos casos, pero que en algunas implementaciones puede dar problemas. Imaginemos una tabla con 10 registros con valores para su clave primaria numérica comprendidos entre 65 y 74. Sería por lo menos raro. read more

Leer más » 7 Comentarios