JcHub
Aide-mémoireGratuit, sans inscriptionPDF

Aide-mémoire SQL

Les requêtes SQL du quotidien sur une page : lire, filtrer, regrouper, joindre et modifier des données.

Mis à jour le 4 novembre 2026

Lire des données

  • SELECT nom, ville FROM clients;Affiche les colonnes nom et ville de la table clients.
  • SELECT * FROM clients;Affiche toutes les colonnes. Pratique pour explorer, à éviter dans une application.
  • SELECT DISTINCT ville FROM clients;Chaque ville une seule fois, sans doublon.
  • SELECT nom AS client FROM clients;Renomme la colonne dans le résultat.
  • ORDER BY nom ASC, inscrit_le DESCTrie par nom (A à Z), puis du plus récent au plus ancien.
  • LIMIT 10 OFFSET 20Garde 10 lignes à partir de la 21e (MySQL, PostgreSQL, SQLite). SQL Server : OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY.

Filtrer

  • WHERE prix > 1000 AND stock > 0Les deux conditions doivent être vraies. OR : au moins une des deux.
  • WHERE ville IN ('Brazzaville', 'Pointe-Noire')La valeur fait partie de la liste.
  • WHERE nom LIKE 'Jo%'Commence par « Jo ». % remplace n’importe quelle suite de caractères, _ un seul caractère.
  • WHERE date_cmd BETWEEN '2026-01-01' AND '2026-06-30'Entre deux valeurs, bornes comprises.
  • WHERE email IS NULLLa valeur est absente. « = NULL » ne marche jamais : utilise IS NULL ou IS NOT NULL.

Regrouper et calculer

  • SELECT COUNT(*) FROM commandes;Nombre de lignes. COUNT(colonne) ignore les valeurs NULL.
  • SUM(montant), AVG(montant)Total et moyenne d’une colonne de nombres.
  • MIN(prix), MAX(prix)Plus petite et plus grande valeur.
  • SELECT ville, COUNT(*) FROM clients GROUP BY ville;Un résultat par ville : le nombre de clients de chacune.
  • HAVING COUNT(*) > 5Filtre les groupes, après GROUP BY. WHERE filtre les lignes, avant.

Joindre des tables

  • FROM commandes c JOIN clients k ON k.id = c.client_idINNER JOIN : seulement les commandes qui ont un client.
  • FROM clients k LEFT JOIN commandes c ON c.client_id = k.idTous les clients, même sans commande (colonnes de commandes à NULL).
  • WHERE c.id IS NULLAvec un LEFT JOIN : les clients qui n’ont jamais commandé.
  • FULL OUTER JOINToutes les lignes des deux tables, reliées quand c’est possible (absent de MySQL).

Ajouter, modifier, supprimer

  • INSERT INTO clients (nom, ville) VALUES ('Awa', 'Dolisie');Ajoute une ligne.
  • UPDATE produits SET prix = 2500 WHERE id = 12;Modifie les lignes choisies. Sans WHERE, toute la table change.
  • DELETE FROM paniers WHERE cree_le < '2026-01-01';Supprime les lignes choisies. Lance d’abord un SELECT avec le même WHERE pour vérifier.

Structure des tables

  • CREATE TABLE clients (id INT PRIMARY KEY, nom VARCHAR(100) NOT NULL);Crée une table avec une clé primaire et une colonne obligatoire.
  • ALTER TABLE clients ADD COLUMN telephone VARCHAR(20);Ajoute une colonne à une table existante.
  • CREATE INDEX idx_clients_ville ON clients (ville);Accélère les recherches et les tris sur cette colonne.
  • DROP TABLE paniers;Supprime la table et toutes ses données, sans retour possible.

Aller plus loin

  • WITH ventes AS (SELECT client_id, SUM(montant) AS total FROM commandes GROUP BY client_id) SELECT * FROM ventes WHERE total > 100000;Une requête nommée (CTE), réutilisée dans la suivante : plus lisible qu’une sous-requête.
  • WHERE id IN (SELECT client_id FROM commandes)Sous-requête : les clients qui ont au moins une commande.
  • BEGIN; … COMMIT;Transaction : tout est enregistré ensemble, ou rien avec ROLLBACK.
  • FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY, LIMITL’ordre dans lequel la base exécute une requête. C’est pour ça qu’un alias du SELECT n’existe pas encore dans le WHERE.

Autres ressources

Besoin d’aide pour ton site ?

Je crée ton site sur mesure.

Site vitrine, boutique en ligne, outil de gestion : parlons de ton projet.

Voir les services