Les relations spatiales
Les prédicats spatiaux de l'OGC sont représentés dans le tableau suivant :

Ils sont disponibles sous formes de fonctions spatiales qui renvoient VRAI (1) ou FAUX (0) :
ST_Equals(geometry A, geometry B) retourne vrai si les géométries sont de même type et ont les mêmes coordonnées.
ST_Intersects(geometry A, geometry B) retourne vrai s'il y a au moins un point commun.
ST_Disjoint(geometry A, geometry B) retourne vrai s'il n'y a aucun point commun (équivalent à n'intersecte pas ou NOT ST_Intersect, qu'il est préférable d'utiliser pour des questions de performance liee aux possibilités d'indexation spatiale)
ST_Crosses(geometry A, geometry B) retourne vrai si le résultat de l'intersection des géométries est de dimension immédiatement inférieure à la plus grande des dimensions des objets (ex : si A est un polygone et B une ligne, la dimension de l'intersection doit être une ligne) ET que le résultat de l'intersection est à l'intérieur des deux géométries.
ST_Overlaps(geometry A, geometry B) retourne vrai si les deux géométries sont de même dimension et que l'intersection est de même dimension mais de géométrie différente (renvoi faux si les deux géométries sont identiques).
ST_Touches(geometry A, geometry B) retourne vrai si les contours s'intersectent ou si un seul des intérieurs intersecte le contour de l'autre.
ST_Within(geometry A, geometry B) retourne vrai si le premier objet est complétement dans le deuxième.
ST_Contains(geometry A, geometry B) retourne vrai si le deuxième objet est complétement dans le premier.
Les fonctions suivantes sont également intéressantes :
ST_Dwithin(geometry A, geometry B, distance) qui retourne vrai si la distance la plus courte entre A et B est inférieure ou égale à distance.
ST_Distance(geometry A, geometry B) qui calcule la distance la plus courte entre deux géométries.
Attention : Comportement différent avec MapInfo
Les relations spatiales normalisées n'ont pas le même comportement que sous MapInfo puisque les opérateurs Contains et Within utilisent la géométrie exacte des objets et non leurs centroïdes.
Pour plus de détails voir Matrices de Clementini et prédicats spatiaux de l'OGC disponible sur le site GéoInformations du Ministère de l'Ecologie (ici)
Remarque : Fonction de comparaison / Fonction d'opération sur les géométries
ST_Intersects() est une fonction de comparaison, qui se contente de vérifier la véracité de l'intersection.
ST_Intersects(geometry A, geometry B) : retourne TRUE si les géométries s'intersectent - (ont un espace en commun) et FALSE si elles n'en ont pas (elles sont disjointes). Il renvoie un booléen qui est utilisé dans la clause WHERE.
ST_Intersection() une fonction d'opération sur les géométries.
ST_Intersection(geometry A, geometry B) : retourne une géométrie qui représente la portion commune des géométries A et B. Utilisé dans le SELECT, il permet de créer une nouvelle géométrie selon les besoins.
SELECT id_a, table_a.geom
FROM table_a, table_b
WHERE ST_Intersects(table_a.geom, table_b.geom);
Renverra tous les objets de table_a qui intersectent ceux de table_b, mais sans les découper.
SELECT id_a, ST_Intersection(table_a.geom, table_b.geom) AS geom;
FROM table_a, table_b;
Découpera tous les objets de table_a pour ne garder que ceux qui intersectent table_b.