
SQL : 20 Commandes que vous utiliserez vraiment
Publié le
Voici les 20 commandes SQL que vous allez réellement utiliser dans vos projets. Pas de théorie inutile, juste ce qui marche au quotidien pour interroger, modifier et organiser vos données.
📊 Les bases
1. Récupérer des données
SELECT, c'est la commande que vous tapez le plus souvent. Elle récupère ce dont vous avez besoin depuis vos tables. Point final.
Avec SELECT
, vous choisissez les colonnes qui vous intéressent.
SELECT nom, email FROM utilisateurs;
2. Filtrer avec WHERE
WHERE, c'est votre meilleur ami pour éviter de récupérer 10 000 lignes quand vous en voulez 3. Vous posez une condition, SQL ne vous donne que ce qui correspond.
Ajoutez des conditions avec WHERE
.
SELECT * FROM produits WHERE prix > 100;
3. Trier les résultats
ORDER BY range vos résultats dans l'ordre que vous voulez. Alphabétique, chronologique, du plus cher au moins cher... à vous de voir.
Avec ORDER BY
, vous décidez de l'ordre d'affichage.
SELECT nom, prix FROM produits ORDER BY prix DESC;
4. Limiter les résultats
LIMIT évite que votre requête plante votre serveur en récupérant 3 millions de lignes. Pratique pour la pagination aussi.
Avec LIMIT
, vous contrôlez le nombre de résultats.
SELECT * FROM articles ORDER BY date_creation DESC LIMIT 10;
🔍 Recherche et filtrage
5. Recherche avec LIKE
LIKE, c'est pour chercher dans du texte sans être trop précis. Vous voulez tous les clients qui s'appellent "Jean quelque chose" ? LIKE est là pour ça.
Utilisez LIKE
avec % pour les recherches floues.
SELECT * FROM clients WHERE nom LIKE 'Jean%';
6. Filtrer avec IN
IN, c'est quand vous avez une liste de valeurs acceptables. Plus propre que d'enchaîner les OR.
Avec IN
, vous donnez une liste de valeurs possibles.
SELECT * FROM commandes WHERE statut IN ('en_cours', 'expediee');
7. Gérer les valeurs nulles
IS NULL et IS NOT NULL, c'est pour les champs vides. Attention, NULL ≠ chaîne vide. C'est vraiment "rien du tout".
Vérifiez les valeurs manquantes avec IS NULL
.
SELECT * FROM utilisateurs WHERE telephone IS NOT NULL;
8. Regrouper les données
GROUP BY, c'est pour faire des comptes par catégorie. Combien de produits par marque ? Combien de commandes par mois ? C'est votre outil.
Regroupez avec GROUP BY
.
SELECT categorie, COUNT(*) FROM produits GROUP BY categorie;
📈 Calculs et agrégations
9. Compter les enregistrements
COUNT(*), c'est le plus simple. Combien de lignes dans ma table ? Combien de commandes aujourd'hui ? Ça répond à ça.
Comptez avec COUNT
.
SELECT COUNT(*) FROM commandes WHERE date_commande >= '2025-01-01';
10. Calculer des sommes
SUM additionne des nombres. Chiffre d'affaires du mois, total des stocks, tout ce qui se calcule.
Additionnez avec SUM
.
SELECT SUM(montant) FROM factures WHERE YEAR(date_facture) = 2025;
11. Calculer des moyennes
AVG vous donne la moyenne. Prix moyen des produits, note moyenne des avis, rien de sorcier.
Calculez la moyenne avec AVG
.
SELECT AVG(prix) FROM produits WHERE categorie = 'electronique';
12. Trouver les extrêmes
MIN et MAX trouvent la plus petite et la plus grande valeur. Produit le moins cher, commande la plus récente, etc.
Trouvez les valeurs extrêmes avec MIN
et MAX
.
SELECT MIN(prix), MAX(prix) FROM produits;
🔗 Jointures
13. Jointure interne
INNER JOIN, c'est pour combiner des tables. Vous voulez les infos des clients ET de leurs commandes ? C'est parti.
Combinez des tables avec INNER JOIN
.
SELECT u.nom, c.date_commande FROM utilisateurs u
INNER JOIN commandes c ON u.id = c.utilisateur_id;
14. Jointure externe
LEFT JOIN garde tous les enregistrements de la table de gauche, même si ils n'ont pas de correspondance à droite. Utile pour voir qui n'a jamais commandé.
Gardez tous les enregistrements de gauche avec LEFT JOIN
.
SELECT u.nom, c.date_commande FROM utilisateurs u
LEFT JOIN commandes c ON u.id = c.utilisateur_id;
15. Sous-requêtes
Une requête dans une requête. Souvent plus lisible que des jointures compliquées, mais attention aux performances.
Imbriquez des requêtes selon vos besoins.
SELECT nom FROM produits WHERE prix > (SELECT AVG(prix) FROM produits);
16. Vérifier l'existence
EXISTS vérifie si une sous-requête retourne des résultats. Pratique pour "montrer moi les clients qui ont déjà commandé".
Vérifiez l'existence avec EXISTS
.
SELECT * FROM clients c WHERE EXISTS
(SELECT 1 FROM commandes WHERE client_id = c.id);
✏️ Modifier les données
17. Ajouter des données
INSERT ajoute des lignes à vos tables. Nouveau client, nouvelle commande, nouveau produit... c'est votre commande.
Ajoutez des données avec INSERT
.
INSERT INTO utilisateurs (nom, email, date_creation)
VALUES ('Marie Dupont', 'marie@example.com', NOW());
18. Modifier des données
UPDATE change des valeurs existantes. Mise à jour des prix, changement de statut, correction d'erreurs...
Modifiez avec UPDATE
.
UPDATE produits SET prix = prix * 1.1 WHERE categorie = 'electronique';
19. Supprimer des données
DELETE efface des lignes. Attention, c'est définitif ! Toujours tester avec SELECT avant.
Supprimez avec DELETE
.
DELETE FROM commandes WHERE statut = 'annulee' AND date_commande < '2024-01-01';
20. Insérer ou modifier
ON DUPLICATE KEY UPDATE (MySQL) ou UPSERT (PostgreSQL) : si ça existe, ça met à jour, sinon ça créé. Pratique pour les compteurs.
Gérez les doublons avec ON DUPLICATE KEY UPDATE
.
INSERT INTO statistiques (date, vues) VALUES ('2025-01-17', 1)
ON DUPLICATE KEY UPDATE vues = vues + 1;
🎯 Pour finir
Voilà, vous avez maintenant 20 commandes SQL dans votre boîte à outils. Pas besoin d'en connaître 200 pour commencer à bosser avec des bases de données.
Le truc, c'est de les utiliser sur de vrais projets. Vous apprenez pas à conduire en lisant le code de la route, vous apprenez en prenant le volant. SQL, c'est pareil.