Le langage SQL
SELECT, jointures, agrégats, mises à jour.
Rédigé par l'équipe éditoriale de RévisionBac d'après le programme officiel · Mis à jour le · Méthodologie
En clair. SQL est la langue des bases de données : on décrit ce qu'on veut, pas comment le chercher.
Ce qu'on te demande au bac STMG : écrire une requête avec sélection, tri, regroupement et jointure.
Exemple simple. Lister les clients parisiens tient en une ligne de requête.
Définition
Le langage SQL (Structured Query Language) est le langage normalisé d'interrogation et de manipulation des bases de données relationnelles. Dans une organisation, il permet d'extraire du système d'information les informations utiles à la prise de décision (chiffre d'affaires par client, stocks critiques, factures impayées).
Une base relationnelle est un ensemble de tables (relations) constituées de lignes (enregistrements) et de colonnes (attributs), reliées par des clés primaires et des clés étrangères.
La requête SELECT
Structure générale, dans l'ordre d'écriture :
SELECT colonnes
FROM table
[JOIN autre_table ON condition]
WHERE condition_de_ligne
GROUP BY colonnes
HAVING condition_de_groupe
ORDER BY colonnes [ASC|DESC];
Exemple 1 — sélection simple. Clients de Lyon, triés par nom :
SELECT nom, ville
FROM Client
WHERE ville = 'Lyon'
ORDER BY nom ASC;
Exemple 2 — jointure. Factures avec le nom du client :
SELECT F.numFacture, F.montant, C.nom
FROM Facture F
JOIN Client C ON F.idClient = C.idClient
WHERE F.montant > 1000;
Exemple 3 — agrégation. Chiffre d'affaires par client, uniquement au-delà de 5 000 € :
SELECT C.nom, SUM(F.montant) AS ca
FROM Client C
JOIN Facture F ON C.idClient = F.idClient
GROUP BY C.nom
HAVING SUM(F.montant) > 5000
ORDER BY ca DESC;
Fonctions d'agrégat
| Fonction | Rôle | Exemple |
|---|---|---|
COUNT(*) | nombre de lignes | nombre de commandes |
SUM(col) | somme | total facturé |
AVG(col) | moyenne | panier moyen |
MIN / MAX | extrêmes | plus ancienne date |
Mise à jour des données
INSERT INTO Client (idClient, nom, ville) VALUES (42, 'Durand', 'Nantes');
UPDATE Produit SET prix = prix * 1.05 WHERE categorie = 'Papeterie';
DELETE FROM Facture WHERE dateFacture < '2020-01-01';
Ces trois ordres modifient durablement les données : ils s'accompagnent toujours d'une clause WHERE réfléchie et de droits d'accès restreints.
Opérateurs utiles
LIKE 'Dur%': recherche par motif ;BETWEEN 100 AND 500: intervalle ;IN ('Lyon','Paris'): appartenance à une liste ;IS NULL: valeur absente (jamais= NULL) ;DISTINCT: suppression des doublons.
Erreurs fréquentes
- Utiliser
WHEREau lieu deHAVINGpour filtrer sur un agrégat :WHERE SUM(...)est invalide. - Oublier la condition de jointure, ce qui produit un produit cartésien (toutes les combinaisons de lignes).
- Écrire
= NULLau lieu deIS NULL. - Mettre dans le
SELECTune colonne non agrégée absente duGROUP BY. - Lancer un
DELETEsansWHERE: la table est vidée.
Quiz corrigé
1. Quelle clause filtre les lignes avant regroupement ?
→ WHERE. HAVING filtre après le GROUP BY, sur les résultats d'agrégats.
2. Écrire la requête donnant le nombre de clients par ville.
→ SELECT ville, COUNT(*) FROM Client GROUP BY ville;
3. Que se passe-t-il si l'on oublie la clause ON d'une jointure ? → Toutes les lignes de la première table sont associées à toutes celles de la seconde : le résultat est un produit cartésien, faux et volumineux.
Sources et références
Ce cours est rédigé par l'équipe RévisionBac à partir du programme officiel et des sources institutionnelles ci-dessous. Elles permettent de vérifier les définitions, les chiffres et les normes citées.
- 1.Programmes et ressources du lycée général et technologique — Éduscol — Ministère de l'Éducation nationale
- 2.Bulletin officiel de l'Éducation nationale (programmes du baccalauréat) — education.gouv.fr
- 3.Protection des données personnelles (RGPD) — CNIL
- 4.Bonnes pratiques de cybersécurité — ANSSI
- 5.Textes de loi et jurisprudence — Légifrance
Contenu vérifié et mis à jour le 09/09/2026. Les liens renvoient vers les sites officiels des éditeurs cités.
Historique éditorial
Ce chapitre est rédigé et relu par l'équipe RévisionBac, puis enrichi par les contributions validées.
- — Dernière mise à jour du cours (relecture et enrichissement)
- — Première publication de la fiche de cours