Extensions spatiales
Sqlite et PostgreSQL proposent des extensions spatiales (respectivement Spatialite et PostGIS) permettant d'ajouter le stockage et la manipulation d'objets spatiaux en ajoutant des types de données géométriques et des fonctions spatiales.
Complément : Les spécifications
La spécification SFSQL (Simple Features for SQL) définit les types et les fonctions qui doivent être disponibles dans une base de données spatiale selon l'OGC. La spécification SQL/MM étend le modèle. On pourra également se référer au document Matrices de Clementini et prédicats spatiaux de l'OGC disponible sur le site du Ministère de l'Ecologie sur l'information géographique (ici)
Les types de données géométriques
Dans cette formation nous ne considérerons que les objets en dimension 2 et plus précisément : les points, les lignes, et les polygones.
La géométrie est stockée dans un format binaire 'WKB' (ou éventuellement texte 'WKT', exemple : POLYGON ((30 10, 10 20, 20 40, 40 40, 30 10)) dans une colonne de table qui est souvent nommée geometry ou the_geom). Le système utilise au moins deux autres tables internes supplémentaires qu'il maintient à jour : geometry_columns et spatial_ref_sys (PostGIS 1.5)

SRID est l'identifiant du système de projection. Par exemple 2154 pour le RGF93/Lambert93
Les fonctions spatiales
Il existe plusieurs catégories de fonctions spatiales, comme par exemple celles qui permettent de passer du format WKT au WKB ou inversement. Voici quelques fonctions de départ :
ST_SRID() : retourne le code du système de projection de l'objet
ST_IsValid() : vérifie la géométrie des objets (pas d'erreur topologique)... Ceci concerne essentiellement les polygones voir par exemple
Remarque :
Vérification de géométrie sous PostGIS
PostGIS ajoute d'autres fonctions de vérification de la géométrie
ST_IsValidReason() : retourne un texte indiquant les raisons d'une éventuelle invalidité.
ST_IsValidDetail() : retourne en plus un pointeur vers la partie non valide (à partir de PostGIS 2.0).
ST_MakeValid() : Tente de corriger les géométries invalides (PostGIS 2.0)
ST_X() : retourne la coordonnée X d'un point (et uniquement d'un point).
ST_Y() : coordonnée Y d'un point
ST_Centroid() : retourne le centroide d'un polygone
Exemple : ST_X(ST_Centroid(Geometry))
retourne la coordonnée X du centroide d'un polygone.
SELECT nom_comm, ST_X(ST_centroid(Geometry)) AS X, ST_Y(ST_centroid(Geometry)) AS Y FROM commune

ST_Area() retourne la surface d'un objet
ST_Buffer() retourne un nouvel objet tampon construit autour d'un objet
ST_Length() : retourne la longueur d'un objet de type ligne ou multi-ligne (attention à ne pas utiliser length() qui retourne la longueur du champ, spatialite autorise aussi Glength()).
ST_Perimeter() : retourne le périmètre d'un objet polygone ou multi-polygone
Attention : Prefixe ST_
Il faut préfixer les commandes par ST_ (Spatial Temporal) pour être conforme au standard SQL/MM. Même si certaines fonctions anciennes sont toujours disponibles sans ce préfixe, elles deviendront prochainement obsolètes. Donc autant prendre les bonnes habitudes !