|
Vos premi�res requ�tes spatiales |
F�vrier 2011 |
SpatiaLite est un SGBD Spatial,
et il est temps de r�aliser quelques requ�tes spatiales avec SQL.
Il n'y a rien de bien sorcier avec le SQL spatial: la base est
identique au SQL, mais il supporte les donn�es Geometriques.
En
g�n�ral, vous ne pouvez pas directement interroger une donn�e
g�om�trique (comme nous l'Avon vu, ce sont des donn�es de type
BLOB):
vous devrez passer par des fonctions spatiales
, ce qui s'av�re beaucoup plus convivial.
SELECT COD_REG, REGIONE,
ST_Area(Geometry) |
La fonction ST_Area()
est une de ces fonctions; de fa�on g�n�rale, vous pouvez
facilement reconna�tre les fonctions spatiales gr�ce au pr�fixe
ST_.
Il n'y a pas de r�gle absolue cependant: SpatiaLite
est capable de comprendre l'alias Area()
pour identifier la m�me fonction.
Comme son nom l'indique, cette
fonction permet de calculer la surface de la g�om�trie
correspondante.
SELECT COD_REG AS
code, |
Comme vous l'avez remarqu�, la premi�re requ�te retourne de
tr�s grandes valeures: c'est parceque le jeu de donn� utilise le
m�tre comme unit� de longueur, la surface est ainsi exprim�e
en m�.
Mais il est tr�s simple d'obtenir la valeur en
km�.
Deux nouvelles notions apparaissent pour la premi�re
fois dans la requ�te suivante:
SQL ne se limite pas a retourner directement la valeur d'une colonne dans la liste des r�sulats: vous �tes libre de d�finir des champs calcul�s.
PLacer une expression complexe apr�s ORDER
BY n'est pas pratique:
mais vous pouvez facilement
identifier cette colonne gr�ce a sa position relative (1
pour la 1�re colonne, et ainsi de suite).
SELECT COD_REG AS
code, |
Vous pouvez �galement effectuer des calculs encore plus complexes
avec SQL.
Cette requ�te va calculer la densit� de
population ( personnes / km�).
Bien, vous avez maintenant acquis les bases en SQL / SQL
spatial. |
|
Author: Alessandro Furieri a.furieri@lqt.it |
This work is licensed under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. |
|
|
|
|
Permission is granted to copy, distribute and/or modify this
document under the terms of the |