Exercice 6 : sélections SQL avec DBManager

Réaliser ses premières requêtes SQL avec DBManager sous QGIS

Exercice tutoré : envoi des réponse aux tuteurs

Écrire les requêtes SQL demandées (Vérifier qu'elles fonctionnent sous le DBmanager) dans l'exercice qui va suivre dans un fichier texte (txt, doc...) sous la forme suivante :

Q1  : SELECT ...

Q2 : SELECT...

...

et remettre ce fichier texte sous le nom "NomStagiaire_EX06" à l'équipe de formation selon la modalité indiquée en début de formation.

En utilisant les tables de 'QGIS_perf_sandbox.sqlite' ou avec DBManager rédiger les 8 requêtes répondant aux questions suivantes :

Question

Q1 : sélectionner tous les IRIS (table IRIS_extrait72) de la commune de la FLECHE (colonne Nom_Com)

Indice

Utiliser la table iris_extrait72 et mettre une condition après la clause WHERE permettant d'indiquer qu'on se limite à la commune de la Flèche.

Question

Q2 : sélectionner les communes du département de la Sarthe de plus de 1500 habitants en affichant un tableau avec les noms de communes et leur population.

Indice

Utiliser la table commune, sélectionner les champs demandés (nom des communes et population) dans la clause SELECT. Mettre deux conditions 'département de la Sarthe' ET 'population de plus de 1500 habitants' dans la clause WHERE.

Question

Q3 : sélectionner les communes de la table COMMUNE dont le statut n'est pas chef-lieu de canton et afficher les colonnes NOM_COMM en lui donnant comme alias NOM et les colonnes, STATUT, POPULATION et SUPERFICIE

Indice

traduire le "n 'est pas" par l'utilisation de NOT.

Question

Q4 : sélectionner les différents noms des tronçons comportant le nom 'ruisseau' dans la colonne TOPONYME de la table TRONCON_HYDROGRAPHIQUE

Indice

Utiliser la table troncon_hydrographique. On pourra utiliser LIKE pour indiquer que le nom de tronçon doit contenir la chaîne 'ruisseau'.

Question

Q5 : à partir de la table COMMUNE, calculer pour chaque département ; la population totale, la densité moyenne de population des communes = moyenne(population commune /superficie commune) arrondie à deux décimales, la population de la commune la plus peuplée et celle de la moins peuplée, la superficie moyenne des communes.

Indice

Le résultat doit être :

exo6 - question 5

on cherche des sommes, moyennes,...par département il faut donc utiliser un GROUP BY (agrégation) avec comme critère le nom de département (NOM_DEPT).

Qui dit agrégation implique automatiquement l'utilisation de fonctions d'agrégation...On utilisera les fonctions d'agrégation donnant la somme, la moyenne, le maximum et le minimum.

Question

Q6 : quels sont les surfaces (en km2) et périmètres (en km), arrondis à deux chiffres après la virgule, des communes du département de la Sarthe ?

Indice

trouver la fonction géométrique qui renvoie une aire, et celle qui renvoie un périmètre. Ces fonctions ne prennent pas de paramètres d'unités, il faut donc faire la conversion soi-même par une division.

Question

Q7 : sélectionner le nombre de tronçons de la 'rivière le loir', par classe de largeur (colonne LARGEUR)

Indice

Il faut 'compter' le nombre de tronçons, donc utiliser une agrégation avec la fonction d'agrégation qui permet de compter.

il y a 3 tronçons dans la classe 0 à 15 métres et 29 dans la classe plus de 50 mètres.

Question

Q8 : quelle est la longueur de la 'rivière le loir' par type de largeur sur ce jeu de données ?

Indice

Il faut partir de la requête précédente et ajouter une colonne qui va calculer la somme de la longueur des tronçons... on utilisera la fonction st_length qui donne la longueur d'un objet linéaire.