Primeros pasos con PostGIS II


Una vez tenemos una base de datos con tablas georreferenciadas, ya tenemos nuestro sistema listo para realizar diferentes operaciones con nuestra base de datos.

Antes de comenzar a trabajar con las operaciones específicas de PostGIS, deberías conocer bien el lenguaje SQL, este lenguaje es un lenguaje muy sencillo pero a la vez muy potente , lo usan la mayoría de los sistemas de gestión de bases de datos. En el tutorial pasado ya realizamos algunas operaciones como CREATE TABLE, ALTER TABLE o INSERT DATA.

A continuación vamos a ver algunas consultas que se pueden hacer a nuestras tablas. Estas consultas pueden ser desde muy sencillas a ya complicarlas casi tanto como queramos. Recordemos que teníamos 3 tablas en nuestra base de datos. La tabla lugares (con geometría de puntos), la tabla avenidas (con geometría de líneas) y la tabla distritos (con geometría de polígonos).

Hoy vamos a ver algunas consultas que podemos hacer con una sola tabla:

● Seleccionar todos los campos de una tabla:

					
SELECT * FROM lugares
					
				


● Seleccionar solamente los campos de que deseemos de una tabla:


					
SELECT nombre,geom FROM lugares
					
				


● Seleccionar los campos elegidos de una tabla en los que un campo de la tabla cumpla una condición:

					
SELECT nombre,geom FROM lugares WHERE nombre='oficinas'
					
				


● Seleccionar todos los campos de una tabla en los que el valor del campo valor sea menor que 40 ordenados de forma ascendente:

					
SELECT * FROM lugares WHERE valor < 40 ORDER BY valor
					
				


● Contar los registros que comparten el valor de un campo:

					
SELECT COUNT (*), valor FROM lugares GROUP BY valor
					
				


● Contar los registros que comparten el valor de un campo que cumplan una condición:

					
SELECT COUNT (*), valor from lugares GROUP BY valor HAVING valor >30
					
				


● Selecciona los campos nombre, valor y geom de la tabla lugares donde su valor es mayor al valor de cualquier registro en el cual su rubro sea deportes:

					
SELECT nombre,valor,geom FROM lugares WHERE valor > ALL (SELECT valor FROM lugares WHERE rubro = 'Deportes');
					
				


● Selecciona los campos nombre, valor y geom de la tabla lugares donde su valor es mayor al valor de algún registro en el cual su rubro sea deportes:

					
SELECT nombre,valor,geom FROM lugares WHERE valor > ANY (SELECT valor FROM lugares WHERE rubro = 'Deportes');
					
				



Sobre el Autor


Pedro Calás Blasco

Cartógrafo. Valenciano por el Mundo. He vivido en Mexico, Brasil y Argentina. Entusiasta de los mapas y las tecnologías Web Mapping. Fundador y coordinador de Mapearte. impulsamos y desarrollamos proyectos que contribuyan al desarrollo social a través de las tecnologías.


¿Eres desarrollador? Únete a la red