Interprétation d’une requête
Requête mono-table :
- On considère la table spécifiée dans la clause
FROM
- On sélectionne les lignes sur la base de la clause
WHERE
- On classe ces lignes en groupes comme spécifié dans la clause
GROUP BY
- On ne retient que les lignes qui vérifient la clause
HAVING
- Les lignes des groupes sont ordonnées selon la clause
ORDER BY
éventuellement - De chacune des lignes, on extrait les valeurs demandées dans la clause
SELECT
Interprétation d'une requête
Requête multitable :
- On considère les tables spécifiées dans la clause
FROM
- On effectue la jointure de ces tables selon le critère de jointure de la clause
WHERE
ou en utilisant la clauseJOIN / ON
- On sélectionne les lignes de la jointure sur la base des autres conditions de la clause
WHERE
- On classe ces lignes en groupes comme spécifié dans la clause
GROUP BY
- On ne retient que les groupes qui vérifient la clause
HAVING
- Les lignes des groupes sont ordonnées selon la clause
ORDER BY
éventuellement - De chacune des lignes, on extrait les valeurs demandées dans la clause
SELECT
Interprétation d'une requête
Exemple d’interprétation
A titre d’exemple, on indique, pour la requête suivante, l’ordre d’interprétation qui conduisent à l’élaboration du résultat :
- 7 : SELECT NCLI , COUNT (*), SUM (QCOM)
- 1 : FROM COMMANDE M, DETAIL D
- 2 : WHERE M.NCOM = D.NCOM
- 3 : AND NPRO = ‘PA60’
- 4 : GROUP BY NCLI
- 5 : HAVING COUNT (*) > = 2
- 6 : ORDER BY NCLI
Remarque : Il s’agit d’une évaluation fictive, le SBGD utilisant généralement d’autres procédés plus efficaces pour construire le résultat
Exemple d’interprétation avec la syntaxe JOIN
- 7 : SELECT NCLI , COUNT (*), SUM (QCOM)
- 1 : FROM COMMANDE M,
- 2 : JOIN __ DETAIL D __ ON M.NCOM = D.NCOM
- 3 : WHERE NPRO = ‘PA60’
- 4 : GROUP BY NCLI
- 5 : HAVING COUNT (*) > = 2
- 6 : ORDER BY NCLI
Remarque : Il s’agit d’une évaluation fictive, le SBGD utilisant généralement d’autres procédés plus efficaces pour construire le résultat
Préparation au Projet
-
Trouver un binôme pour le projet et s’organiser à l’avance
-
Préparer sa machine pour pouvoir travailler sur le projet
-
https://www.sqlitetutorial.net/ : Tutoriel complet sur SQLite et SQL
-
SQLite Studio : Interface graphique pour SQLite
-
Les bases de données du cours sont disponibles au téléchargement :