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