Préparation : Création des tables
On commence par créer deux tables : clients
et commandes
.
CREATE TABLE clients ( id INT PRIMARY KEY, nom VARCHAR(100), ville VARCHAR(50), age INT ); CREATE TABLE commandes ( id INT PRIMARY KEY, client_id INT, montant DECIMAL(10,2), date_commande DATE );
Insertion de données
INSERT INTO clients (id, nom, ville, age) VALUES (1, 'Amine', 'Paris', 30), (2, 'Lucie', 'Lyon', 25), (3, 'Karim', 'Paris', 40), (4, 'Nina', NULL, 28); INSERT INTO commandes (id, client_id, montant, date_commande) VALUES (1, 1, 100.50, '2024-06-10'), (2, 2, 300.00, '2024-06-11'), (3, 1, 50.00, '2024-06-15'), (4, 3, 200.00, '2024-06-20');
Exercice 1 : Lecture simple
Affiche tous les clients vivant à Paris.
SELECT * FROM clients WHERE ville = 'Paris';
Exercice 2 : Filtres avancés
Affiche les clients dont l'âge est compris entre 26 et 35 ans et dont la ville n'est pas renseignée.
SELECT * FROM clients WHERE age BETWEEN 26 AND 35 AND ville IS NULL;
Exercice 3 : Tri et limite
Liste les 2 clients les plus âgés.
SELECT nom, age FROM clients ORDER BY age DESC LIMIT 2;
Exercice 4 : Requête avec LIKE
Afficher les clients dont le prénom commence par 'A'.
SELECT * FROM clients WHERE nom LIKE 'A%';
Exercice 5 : Jointure
Afficher les commandes avec le nom du client correspondant.
SELECT commandes.id, clients.nom, commandes.montant FROM commandes JOIN clients ON commandes.client_id = clients.id;
Exercice 6 : Agrégation et GROUP BY
Afficher le total des commandes par client.
SELECT clients.nom, SUM(commandes.montant) AS total FROM commandes JOIN clients ON commandes.client_id = clients.id GROUP BY clients.nom;
Exercice 7 : HAVING
Afficher les clients dont le total des commandes dépasse 100€.
SELECT clients.nom, SUM(commandes.montant) AS total FROM commandes JOIN clients ON commandes.client_id = clients.id GROUP BY clients.nom HAVING SUM(commandes.montant) > 100;
Résumé
- Tu as pratiqué :
SELECT
,WHERE
,ORDER BY
,LIMIT
,BETWEEN
,LIKE
,IS NULL
- Tu as utilisé les fonctions :
SUM()
,JOIN
,GROUP BY
,HAVING
Ces exercices couvrent la majorité des requêtes SQL utiles dans le monde réel. Tu es maintenant prêt à manipuler des bases de données relationnelles avec assurance !
Aucun commentaire:
Enregistrer un commentaire