Explorer le code, créer des solutions et partager des connaissances dans le monde fascinant du développement logiciel.

dimanche 29 juin 2025

Apprendre SQL : Exercices de Pratique

Apprendre SQL : Exercices de Pratique
Apprendre SQL : Exercices de Pratique

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 !

© 2024 Codez avec moi

Aucun commentaire:

Enregistrer un commentaire