Gérer les bases et les tables
Utiliser Spatialite sous QGIS
SpatiaLite est l'extension spatiale de Sqlite. Il est conforme à la norme OGC-SFS (Open Geospatial Consortium - Simple Feature SQL) et ouvre la porte à la réalisation d'analyses spatiales au-delà des fonctions natives de QGIS.
SpatiaLite est utilisé par QGIS pour stocker ses propres informations. Il est donc disponible de façon sous-jacente lorsqu'on installe QGIS.
Remarque :
Le plug-in 'édition hors connexion' permet de gérer la synchronisation avec une base SpatiaLite (offline.sqliter) embarquée.
Il est donc possible d'envisager des utilisations avec saisie terrain sous SpatiaLite puis synchronisation au retour avec une base partagée centrale (sous PostGIS par exemple).
Nous allons utiliser spatialite sous QGIS avec le plugin QspatiaLite réalisé par Romain RIVIERE (mais ceux qui préfèrent peuvent utiliser DBManager qui est plus universel, mais qui ne dispose pas encore (QGIS 2.2) d'assistant SQL).
Vérifier que QspatiaLite est bien installé :
Le menu base de données de QGIS doit proposer un item 'SpatiaLite'
Son lancement doit afficher la boîte de dialogue suivante :
Choisir par exemple la base QGIS_perf_sandbox_v2.sqlite. (QGIS_perf_sandbox.sqlite pour une version de QGIS < 2.0)
vaccum database : permet de nettoyer la base de données des enregistrements vides (équivalent 'compacter table' sous MapInfo).
Open/Create new DataBase : permet de créer une nouvelle base SQLite, ou de récréer le lien vers une base existante. Le fichier d'extension . sqlite ainsi créé est complétement autonome et peut-être diffusé à un utilisateur distant (comme par exemple le fichier qgis_perf_sandbox_V2.sqlite fourni dans le jeu de données de la formation).
Remove : permet de supprimer la base de données en cours de la liste des bases référencées sous QspatiaLite. La base n'est pas supprimée physiquement. Pour re-référencer une base existante, il faut utiliser 'New DB' et sélectionner la base existante. Une fenêtre demandant si on veut remplacer la base apparaît, mais la base n'est pas écrasée et à nouveau référencée.
Pour chaque Table listée :
l'icône représente le type de table (point, ligne, polygones, données, vues,...) en fonction du type de table un clic droit affiche un menu déroulant qui donne accès aux commandes suivantes :
REFRESH TREE: réactualise l'arbre décrivant les tables.
NEW TABLE : permet de créer une nouvelle table directement sous QspatiaLite
NEW VIEW : affiche dans l'éditeur SQL l'ordre (à compléter) permettant de créer une 'vue' (le concept de vue est un peu similaire aux tables requêtes sous MapInfo. Voir par exemple ici). L'intérêt est qu'elle est remise à jour si les données des tables sources de la requête qui a généré la vue sont modifiées. Une vue s'utilise comme une table (avec quelques restrictions).
SHOW MEDATA : affiche les métadonnées stockées dans 'geom_cols_ref_sys' de la table en cours.
DROP TABLE : permet de supprimer la table
LOAD IN QGIS : permet de charger la table dans QGIS
SHOW SAMPLE : montre un échantillon des données de la table
SHOW ALL : montre les données de la table
SHOW COLUMNS : liste des colonnes de la table avec leurs caractéristiques.
NEW INDEX : permet d'afficher dans la boîte SQL la syntaxe de création d'un index. La notion d'index sous Sqlite est plus puissante que sous mapInfo car elle peut reposer sur plusieurs colonnes voir par exemple.
NEW COLUMN : permet d'afficher dans la boîte SQL la syntaxe de création d'une nouvelle colonne
NEW TRIGGER : permet d'afficher dans la boîte SQL la syntaxe de création d'un trigger. Nous ne verrons pas dans ce cours les triggers, voir par exemple ici pour en savoir plus.
CREATE SPATIAL INDEX : permet de créer un index spatial (Rtree) sur le champ geometry (pour accélérer les requêtes sur les grosses tables). Nous en reparlerons...
Advance SQL Editor : donne accès à une boite de dialogue permettant de construire les requête SQL en mode interactif. Nous allons l'étudier un peu plus loin...
ces boutons permettent de naviguer dans l'historique des commandes SQL.
Import des couches QGIS. fixer le SRID est prudent. Si c'est du RGF93/Lambert 93 on indiquera 2154 comme code EPSG.
Import de fichiers OGR. permet d'importer directement dans spatialite des fichiers dans les formats reconnus par OGR. Un onglet Multi Files selection permet d'importer plusieurs fichiers en une seule fois.
Import de fichiers TXT ou CSV
Export de fichiers OGR. permet d'exporter les tables dans un format spatial accepté par ogr2ogr. L'option 'just load in QGIS' permet de charger le résultat dans QGIS au lieu de l'écrire sur le disque.
Export txt, csv, sqlite, ou DBF. l'option 'just load in QGIS' permet de charger le résultat dans QGIS au lieu de l'écrire sur le disque.
exécution requête SQL