Présentation de DBManager
Mise en oeuvre
Nous allons mettre en pratique SQL dans le SGBD SpatiaLite.
Il existe de nombreux 'clients' permettant d'écrire et d'exécuter les requêtes SQL. Depuis QGIS nous allons utiliser le plugin DBManager qui s'interface aussi bien avec SpatiaLite, PostGIS, ou les virtuals Layer (toute couche ouverte dans QGIS). C'est le plugin qui est porté par la communauté QGIS.
Avec PostgreSQL, il est possible d'utiliser PgAdmin qui est le client le plus populaire de PostGIS et qui dispose de fonctionnalités intéressantes comme un assistant à l'écriture de requêtes SQL. Ce client est présenté en détail dans la formation 'PostgreSQL Administrer ses données'
Pour mettre en œuvre le plugin DB Manager...
Vérifier qu'il est bien activé, sinon activer-le.
Le plugin est alors disponible dans le menu 'bases de données' de QGIS, ou dans la barre d'outils base de données avec le bouton

Il est possible de créer une nouvelle base de données spatialite à partir de QGIS en exportant une première couche (clic droit, enregistrer sous) puis de choisir le format spatialite (et pas sqlite).
Pour se connecter la première fois à une base de données existante (spatialite ou postgis) dans DBManager, il est nécessaire de le faire par l'intermédiaire de QGIS.
Établir la connexion avec la base de données QGIS_perf_sandbox_V2.sqlite en utilisant le bouton 'ajouter une couche spatialite' et désigner le fichier QGIS_perf_sandbox_V2.sqlite fourni dans le jeux de données (répertoire Divers). Puis connecter... vous devez voir apparaître cette boîte de dialogue :
En lançant DB Manager vous devez maintenant pouvoir vous connecter à cette base.
Nb : Une base de données de type PostGIS peut être protégée par mot de passe, dans ce cas il faut le saisir dans la fenêtre qui apparaît pour cela.
L'onglet info fournit les informations sur les tables

On peut par exemple lire que la table COMMUNE contient 19 enregistrements (lignes), qu'il y a une colonne de géométrie contenant des objets 'MULTIPOLYGON', que la projection est Lambert 93 et qu'il n'y a pas d'index spatial (aucun index spatial défini...nous verrons ce que cela signifie concrètement plus tard).
L'onglet 'table' fournit une vision des données de la table et l'onglet aperçu une visualisation de la géométrie.
Le bouton 'Fenêtre SQL' ouvre un nouvel onglet dans lequel nous allons pouvoir exécuter des ordres SQL.
Exemple : sélectionner tous les objets de la table commune :
Complément : Chargement d'un résultat comme couche
Le résultat d'une requête SQL peut-être chargé comme une nouvelle couche dans QGIS en cochant la case 'Charger en tant que nouvelle couche'.
Il faut préciser une colonne avec des valeurs entières et uniques. Ce doit être un champ de type INTEGER, par exemple pour la table COMMUNE se pourrait être ID_BDCARTO.
Si on ne dispose pas d'un tel champ on peut ne pas cocher la case.
La colonne géométrique est en général la colonne de nom Geometry.