Systèmes d'information de gestion · Terminale STMGBac
Le langage SQL : cours de Terminale STMG
Publié le 11 novembre 2026 · Mis à jour le 11 novembre 2026 · Signaler une erreur
L'essentiel
- SQL (Structured Query Language) est un langage de requêtes : il sert à interroger et à manipuler les données d'une base relationnelle.2
- SELECT … FROM réalise une projection (choix des colonnes) ; WHERE réalise une sélection (choix des lignes).3
- On peut aussi trier les résultats (ORDER BY) et limiter leur nombre (LIMIT).3
- SQL est déclaratif : tu décris le résultat voulu, le SGBD choisit comment le calculer.3
- SQL ne sert pas qu'à lire : il permet de créer, lire, modifier, supprimer des données, et d'administrer la base.3
Pourquoi un langage pour interroger les données ?
Dans une entreprise, les informations sont rangées dans une base de données : clients, produits, commandes, factures. Tu as vu au chapitre précédent comment le modèle relationnel organise ces informations en tables liées entre elles. Reste une question pratique : comment retrouver, par exemple, les produits qui coûtent plus de 10 euros, ou les clients d'une ville précise ?
Il serait lourd de parcourir les tables à la main. Il faut donc un moyen de poser une question à la base, dans une forme que la machine comprend. C'est le rôle d'un langage de requêtes. Pour les bases relationnelles, ce langage s'appelle SQL.
Une requête est une phrase écrite en SQL. Tu l'envoies au SGBD (système de gestion de bases de données), le logiciel qui garde les données. Il l'exécute et te renvoie un résultat, qui a lui-même la forme d'un tableau.
Les entreprises ont besoin d'un langage commun pour échanger et traiter leurs données : c'est une des raisons pour lesquelles des langages normalisés comme SQL se sont imposés.2
Ce que SQL permet de faire
SQL n'est pas seulement un outil de lecture. On peut y distinguer plusieurs familles d'usages.
- Un langage de manipulation de données : on peut y ajouter, consulter, modifier et supprimer des enregistrements. On résume souvent cela par le sigle CRUD (Create, Read, Update, Delete).3
- Un langage pour administrer la base : gérer les contrôles d'accès, c'est-à-dire décider qui a le droit de faire quoi.3
Dans ce chapitre, on se concentre sur la lecture (Read) : poser des questions à la base. Les requêtes qui croisent plusieurs tables (les jointures) font l'objet du chapitre suivant.
Un exemple de base pour tout le chapitre
Pour comprendre SQL, rien ne vaut un exemple concret. Prenons le magasin d'une petite papeterie. Sa base contient une table nommée Produit. Chaque ligne (on dit aussi enregistrement ou n-uplet) décrit un produit. Chaque colonne (on dit aussi attribut) décrit une caractéristique.
| id | nom | categorie | prix |
|---|---|---|---|
| 1 | Cahier | Papeterie | 3 |
| 2 | Stylo | Papeterie | 2 |
| 3 | Sac | Bagagerie | 25 |
| 4 | Classeur | Papeterie | 6 |
| 5 | Calculatrice | Informatique | 18 |
| 6 | Clé USB | Informatique | 9 |
Le prix est exprimé en euros. La colonne id est la clé primaire : chaque produit a un identifiant unique, qui permet de le distinguer des autres.
La requête de base : SELECT … FROM
La requête la plus simple de SQL pose deux questions : quelles colonnes veux-tu voir, et dans quelle table ?
SELECT nom, prix
FROM Produit;
Cette requête renvoie, pour chaque produit, son nom et son prix, et rien d'autre. Le point-virgule marque la fin de la requête.
Pour obtenir toutes les colonnes, on remplace la liste par une étoile :
SELECT *
FROM Produit;
Cette forme est pratique pour explorer une table inconnue. Dans un travail soigné, on préfère nommer les colonnes utiles : le résultat est plus lisible.
Filtrer les lignes : la clause WHERE
Avec SELECT seul, tu obtiens toutes les lignes de la table. Souvent, on ne veut que celles qui répondent à une condition : les produits chers, les clients d'une ville, les commandes d'un mois. La clause WHERE exprime cette condition.
SELECT nom, prix
FROM Produit
WHERE prix > 5;
Le SGBD examine chaque ligne. Il ne garde que celles où la condition est vraie.
Les opérateurs de comparaison disponibles dans une condition :
| Opérateur | Sens | Exemple |
|---|---|---|
= |
égal à | prix = 9 |
<> |
différent de | categorie <> 'Papeterie' |
< et > |
strictement inférieur, strictement supérieur | prix < 10 |
<= et >= |
inférieur ou égal, supérieur ou égal | prix >= 18 |
Quand on compare avec du texte, la valeur s'écrit entre apostrophes : categorie = 'Papeterie'. Les nombres s'écrivent sans apostrophes.
Combiner plusieurs conditions. Les mots AND (et), OR (ou) et NOT (non) permettent de composer des conditions.
SELECT nom, prix
FROM Produit
WHERE categorie = 'Informatique' AND prix < 10;
Avec AND, les deux conditions doivent être vraies en même temps. Ici, seule la Clé USB (Informatique, 9 euros) convient : la Calculatrice est en informatique mais coûte 18 euros.
Avec OR, il suffit qu'une des deux conditions soit vraie :
SELECT nom
FROM Produit
WHERE categorie = 'Bagagerie' OR prix > 15;
Résultat : Sac (bagagerie, et prix 25) et Calculatrice (prix 18). Le Sac remplit les deux conditions, il n'apparaît qu'une seule fois.
Trier et limiter les résultats
Un résultat n'a pas forcément d'ordre utile. On peut demander au SGBD de le trier, et de n'en garder qu'un certain nombre de lignes. Ce sont deux autres éléments d'une requête de lecture : le tri et la limite.3
- ORDER BY suivi d'une colonne trie le résultat. Par défaut, le tri est croissant (ASC). Pour un tri décroissant, on écrit DESC.
- LIMIT suivi d'un nombre garde seulement ce nombre de lignes, en partant du début du résultat.
Une requête complète pas à pas
Une requête SQL est une phrase assemblée avec ces mots-clés. Voici comment la construire de manière méthodique, à partir d'une demande écrite en français.
- SELECTChoisir les colonnes à afficher (projection)
- FROMIndiquer la table qui contient les données
- WHEREGarder les lignes qui vérifient la condition
- ORDER BYTrier le résultat sur une colonne
- LIMITGarder seulement les premières lignes
Un langage déclaratif. Dans la requête ci-dessus, tu n'as pas écrit comment parcourir la table, ni dans quel ordre examiner les lignes. Tu as décrit ce que tu veux obtenir. C'est ce qu'on appelle un langage déclaratif.3 Le SGBD traduit ta demande en opérations internes sur les tables, issues de l'algèbre relationnelle, puis choisit la manière de les exécuter.3
Pour un programme en Python, on décrit les étapes de calcul. Avec SQL, on décrit le résultat attendu : c'est ce qui rend la lecture des requêtes accessible, même quand la base contient des milliers de lignes.
Modifier les données : un aperçu
Comme SQL est aussi un langage de manipulation des données,3 il permet d'écrire dans la base. Voici le principe des trois autres gestes du sigle CRUD. Dans ce cours, l'objectif est d'abord de savoir les reconnaître et d'en comprendre l'effet.
| Geste | Sens | Exemple |
|---|---|---|
| Create | ajouter une ligne | INSERT INTO Produit VALUES (7, 'Règle', 'Papeterie', 1); |
| Update | modifier des valeurs | UPDATE Produit SET prix = 4 WHERE nom = 'Cahier'; |
| Delete | supprimer des lignes | DELETE FROM Produit WHERE id = 2; |
Erreurs à éviter et bonnes pratiques
Voici les erreurs que l'on rencontre le plus souvent en début d'apprentissage, et la manière de les éviter.
Le lien avec la suite du programme. Une requête sur une seule table ne suffit pas toujours : une base relationnelle répartit les données dans plusieurs tables. Le chapitre sur les requêtes et les jointures te montrera comment les relier. Tu verras ensuite pourquoi la qualité et l'intégrité des données comptent, puis comment on exploite de grandes quantités de données pour décider.
Exercices corrigés
Exercice 1 Compter les lignes d'un résultat
On utilise la table Produit du cours, dont les prix en euros sont 3, 2, 25, 6, 18 et 9.
SELECT nom
FROM Produit
WHERE prix > 5;
Combien de lignes cette requête renvoie-t-elle ?
Indice 1
Examine les six lignes une à une et garde seulement celles dont le prix est strictement supérieur à 5.
Indice 2
Teste chaque prix séparément : le signe > est strict, donc un prix égal à 5 serait exclu.
Voir la correction pas à pas
La condition
prix > 5garde les lignes dont le prix dépasse 5 euros.On teste chaque prix : 3 non, 2 non, 25 oui, 6 oui, 18 oui, 9 oui.
On compte les lignes gardées : 25, 6, 18 et 9, soit 4 lignes.
La requête renvoie 4 lignes : Sac, Classeur, Calculatrice et Clé USB. Seuls le Cahier et le Stylo sont écartés.
Exercice 2 Tri et limite : somme de deux prix
Toujours avec la table Produit (prix : 3, 2, 25, 6, 18, 9 euros), on exécute :
SELECT nom, prix
FROM Produit
ORDER BY prix DESC
LIMIT 2;
Quelle est la somme, en euros, des prix des deux lignes obtenues ?
Indice 1
Commence par trier les prix du plus grand au plus petit.
Indice 2
LIMIT 2 garde les deux premières lignes du résultat trié.
Voir la correction pas à pas
ORDER BY prix DESCtrie du plus grand au plus petit : 25, 18, 9, 6, 3, 2.LIMIT 2garde les deux premières lignes : Sac (25) et Calculatrice (18).On additionne les deux prix : 25 + 18 = 43.
La somme des prix des deux lignes renvoyées est de 43 euros.
Exercice 3 Écrire une requête à partir d'une demande
Avec la table Produit (colonnes id, nom, categorie, prix), écris la requête SQL qui répond à la demande suivante :
« Afficher le nom des produits de la catégorie Informatique, du moins cher au plus cher. »
Indique ensuite le résultat attendu sur les données du cours.
Indice 1
Le tri par défaut de ORDER BY est croissant : tu n'as pas besoin d'écrire DESC.
Indice 2
Le texte « Informatique » s'écrit entre apostrophes.
Voir la correction pas à pas
La table concernée est Produit : on écrit
FROM Produit.La colonne à afficher est nom : on écrit
SELECT nom.La condition porte sur la catégorie :
WHERE categorie = 'Informatique'.Le tri du moins cher au plus cher est croissant :
ORDER BY prix.La requête complète est
SELECT nom FROM Produit WHERE categorie = 'Informatique' ORDER BY prix;.Résultat : les produits Informatique sont Calculatrice (18) et Clé USB (9). Triés du moins cher au plus cher : Clé USB, puis Calculatrice.
La requête est SELECT nom FROM Produit WHERE categorie = 'Informatique' ORDER BY prix; et elle renvoie Clé USB, puis Calculatrice.
Quiz
8 questions · correction immédiate · ton score reste sur ton appareil.
-
SQL signifie Structured Query Language, un langage de requêtes.2 Les autres propositions ressemblent au sigle mais n'existent pas : elles inventent des mots qui commencent par les bonnes lettres.
-
WHERE réalise la sélection : elle garde les lignes qui vérifient la condition.3 SELECT, elle, choisit les colonnes (projection), et c'est l'erreur tentante. FROM indique la table, et ORDER BY trie.
-
Choisir les colonnes nom et prix est une projection.3 Ce n'est pas une sélection, car aucune condition ne filtre les lignes : toutes les lignes sont gardées. Rien n'est supprimé ni trié non plus.
-
Les produits de la catégorie Papeterie sont Cahier, Stylo et Classeur, soit 3 lignes. Le nombre 6 serait le total de la table, mais la condition WHERE écarte les trois autres produits.
-
Le tri décroissant place le prix le plus élevé en premier, et LIMIT 1 garde cette ligne.3 Sans ORDER BY, la première ligne n'est pas forcément la plus chère. Avec un tri croissant, on obtiendrait le produit le moins cher. Enfin, DESC ne s'écrit pas dans WHERE.
-
SQL est un langage déclaratif : la requête décrit ce qu'on veut obtenir.3 La deuxième proposition décrit un programme qui détaille ses étapes, ce que SQL ne demande pas. La quatrième décrit plutôt un langage de balisage comme XML.
-
C'est faux : chaque ligne n'a qu'une seule valeur dans categorie, donc aucune ligne ne vérifie les deux conditions à la fois. Le résultat est vide. Pour obtenir les deux groupes, il faut utiliser OR.
-
SQL permet de manipuler les données (lecture, ajout, modification, suppression) et d'administrer la base, notamment ses contrôles d'accès.3 La mise en page d'un document de traitement de texte n'a aucun rapport avec SQL.
Les questions qu'on se pose
Quelle est la différence entre SELECT et WHERE ?
SELECT choisit les colonnes à afficher : c'est une projection. WHERE choisit les lignes à garder selon une condition : c'est une sélection.3 Une requête utilise souvent les deux. Retiens : SELECT réduit la largeur du tableau, WHERE réduit sa hauteur.
Faut-il écrire les mots-clés en majuscules ?
Le SGBD accepte en général les majuscules comme les minuscules pour les mots-clés. Écrire SELECT, FROM, WHERE en majuscules est une convention de lisibilité : elle distingue les mots-clés des noms de tables et de colonnes. À l'examen, suis la convention utilisée dans le sujet et dans ton cours.
Pourquoi une requête me renvoie-t-elle un résultat vide ?
Un résultat vide signifie qu'aucune ligne ne vérifie la condition. Vérifie trois choses : une condition avec AND qui ne peut jamais être vraie (comme deux catégories différentes pour la même ligne), une faute de frappe dans une valeur de texte, ou un seuil trop exigeant sur un nombre. Simule la requête à la main sur quelques lignes pour trouver la cause.
SQL sert-il seulement à lire des données ?
Non. SQL est aussi un langage de manipulation de données (créer, lire, modifier, supprimer) et il permet d'administrer la base, par exemple en gérant les contrôles d'accès.3 Dans ce chapitre, tu t'entraînes surtout à la lecture, qui est le geste le plus courant.
À quoi sert SQL pour un gestionnaire en entreprise ?
Il permet d'obtenir rapidement une information précise dans une grande masse de données : les clients d'une ville, les produits les plus vendus, les factures impayées. Comme SQL est un langage de requêtes partagé,2 plusieurs outils et plusieurs services peuvent interroger la même base de la même façon.
Sources
- Ressources Éduscol - Contenus relatifs aux données massives, Éduscol. Consulté le 11 novembre 2026.
- Annexe 31 - Systèmes d'information de gestion (Spécialité Terminale STMG), Éduscol. Consulté le 11 novembre 2026.
- Bases de données et SQL - Introduction, CNRS/LIRIS. Consulté le 11 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.