Exercices interactifs⚓︎
Exercice 1
Questions interactives à réaliser sur le site sqlzoo.net.
À consulter ici : https://github.com/jisaw/sqlzoo-solutions.
Exercice 2
Gestion d'un réseau d'agences de location de voitures.
D'après le travail de J. Le Coupanec (Académie de Rennes)
La base de données locations.db contient les tables Agences
,Locations
, Vehicules
.
Questions sur la relation Agences
Q1. Visualisez toute la relation Agences
Correction
SELECT *
FROM Agences
Q2. Listez uniquement les noms des agences et de leur ville.
Correction
SELECT nom, ville
FROM Agences
Q3. Listez les noms des agences de la ville de Lorient
Correction
SELECT nom
FROM Agences
WHERE ville = 'Lorient'
Q4. Listez les noms des agences du département du Morbihan (code postal 56***) ainsi que les codes postaux en utilisant par exemple un WHERE LIKE
.
Correction
SELECT nom, code
FROM Agences
WHERE code LIKE '56%'
Questions sur la relation Vehicules
Q5. Déterminez le nombre de voitures que vous possédez.
Correction
SELECT COUNT(*)
FROM Vehicules
Q6. Déterminez l'âge minimum et maximum de vos véhicules.
Correction
SELECT MAX(age), MIN(age)
FROM Vehicules
Q7. Quels sont la marque et le modèle de votre dernière acquisition qui date de trois mois ?
Correction
SELECT nom
FROM Vehicules
WHERE age = 3
Q8. Quel est le kilométrage maximum des véhicules ?
Correction
SELECT MAX(kilometrage)
FROM Vehicules
Q9. Quel est le kilométrage moyen des véhicules ?
Correction
SELECT AVG(kilometrage)
FROM Vehicules
Q10. Afficher toute la flotte de véhicules par ordre décroissant de kilométrage.
Correction
SELECT *
FROM Vehicules
ORDER BY kilometrage DESC
Questions sur la relation Locations
Q11. Visualisez toute la relation Locations.
Correction
SELECT *
FROM Locations
Q12. Déterminez le nombre de locations effectuées avec changement d'agence
Correction
SELECT COUNT(*)
FROM Locations
WHERE depart != retour
Q13. Déterminez le nombre total de kilomètres effectués durant les locations
Correction
SELECT SUM(kilometrage)
FROM Locations
Q14. Listez toutes les locations en y associant les caractéristiques du véhicule
Correction
SELECT *
FROM Locations
JOIN Vehicules ON Locations.vehicule = Vehicules.immatriculation
Q15. Affichez le nom et l'immatriculation du véhicule ainsi que la date de la location et le kilométrage réalisé pour chacune des locations
Correction
SELECT Vehicules.nom, Vehicules.immatriculation, Locations.date, Locations.kilometrage
FROM Locations
JOIN Vehicules ON Locations.vehicule = Vehicules.immatriculation
Q16. Affichez une seule fois le nom et l'immatriculation des véhicules ayant déjà été loués.
Correction
SELECT DISTINCT nom, immatriculation
FROM Locations
JOIN Vehicules ON Locations.vehicule = Vehicules.immatriculation
Q17. Affichez les locations du véhicule immatriculé AB-224-BA en précisant le nom de l'agence de départ ainsi que la ville de départ dans l'ordre chronologique des locations.
Correction
SELECT Agences.nom, Agences.ville, Locations.*
FROM Locations
JOIN Agences ON Locations.depart = Agences.id
WHERE vehicule = 'AB-224-BA'
ORDER BY Locations.date
Exercice 3 : The SQL Murder Mystery
Cet exercice en ligne est proposé par le Knight Lab de l'université américaine Northwerstern University.
Le point de départ de l'histoire : un meurtre a été commis dans la ville de SQL City le 15 janvier 2018.
À partir de ce point de départ et d'une base de données dont le diagramme est donné ci-dessous, il s'agit de trouver le meurtrier.
Rendez-vous sur cette page, et bonne enquête à coups de requêtes !
Vous pouvez travailler en ligne ou bien dans votre SGBD préféré, avec la base sql-murder-mystery.db. Attention pour valider votre réponse, il faudra vous rendre en bas de la page officielle.