Numérique et sciences informatiques (spécialité) · TerminaleBac
SQL : jointures et mises à jour, fiche de Terminale NSI
Publié le 7 novembre 2026 · Mis à jour le 7 novembre 2026 · Signaler une erreur
L'essentiel
- Une jointure (
JOIN ... ON) rapproche deux tables en comparant, dans la clauseON, une clé étrangère et la clé primaire qu'elle désigne. - Les conditions se combinent avec AND et OR dans la clause
WHERE; en cas de mélange, les parenthèses évitent les surprises. INSERT INTOajoute un enregistrement,UPDATE ... SET ... WHEREmodifie des enregistrements existants.- Un
UPDATEsans WHERE modifie toutes les lignes de la table : c'est l'erreur la plus coûteuse. - Ces notions font partie du programme de Terminale et peuvent tomber dans l'exercice de bases de données de l'épreuve écrite.
Ce qu'il faut savoir pour le bac
Cette fiche prolonge les requêtes SQL de base. Le programme demande de savoir écrire des requêtes avec les opérateurs logiques AND et OR, des jointures avec JOIN ... ON, ainsi que des requêtes d'insertion et de mise à jour avec UPDATE 2. Un exercice de l'épreuve écrite porte d'ailleurs sur les bases de données relationnelles et le langage SQL, sans calculatrice 1. Tu dois donc savoir écrire ces requêtes à la main, proprement.
Les exemples utilisent deux tables.
| eleves | |||
|---|---|---|---|
| id | nom | age | id_classe |
| 1 | Lina | 17 | 10 |
| 2 | Hugo | 18 | 10 |
| 3 | Sara | 17 | 20 |
| 4 | Yanis | 18 | 20 |
| classes | |
|---|---|
| id_classe | nom_classe |
| 10 | Terminale A |
| 20 | Terminale B |
id est la clé primaire de eleves, id_classe celle de classes. Dans eleves, id_classe est une clé étrangère : elle renvoie à une ligne de classes.
Les jointures : JOIN ... ON
Combiner des conditions : AND et OR
Insérer et mettre à jour
Le programme prévoit de construire des requêtes d'insertion et de mise à jour, cette dernière avec UPDATE 2. Ces requêtes ne renvoient pas un tableau : elles modifient le contenu de la base.
Pièges d'examen et réflexes
Questions flash
4 questions · correction immédiate · ton score reste sur ton appareil.
-
La condition de jointure s'écrit après
ON, dansJOIN ... ON.WHEREsert à filtrer les lignes après la jointure, ce qui est tentant mais ne remplace pas le rôle duONdans cette syntaxe ;SETappartient àUPDATEetVALUESàINSERT. -
Sans
WHERE,UPDATEs'applique à toutes les lignes : les 4 élèves passent à 19 ans. La requête n'est pas refusée, c'est justement le danger. Aucune condition n'existe pour ne viser que la première ligne ou les plus jeunes. -
C'est faux : avec
OR, il suffit qu'une condition soit vraie. C'estANDqui exige les deux. Ici Lina, Sara et Yanis sont retenus. -
Chacun des 4 élèves est associé à exactement une classe, donc 4 lignes. Le résultat n'est pas de 8 (4 × 2), valeur qu'on obtiendrait en oubliant la condition
ONet en rapprochant chaque élève de chaque classe.
Les questions qu'on se pose
Faut-il toujours préfixer les colonnes par le nom de la table ?
Seulement quand un même nom de colonne existe dans les deux tables (comme id_classe dans l'exemple). Le faire partout est pourtant une bonne habitude : la requête est plus lisible pour le correcteur et tu évites toute ambiguïté.
Comment éviter de modifier trop de lignes avec UPDATE ?
Écris d'abord la clause WHERE, puis vérifie-la avec un SELECT qui utilise la même condition : les lignes affichées sont celles que l'UPDATE modifiera. Pour viser une seule ligne, appuie-toi sur la clé primaire, qui est unique.
À quoi servent les jointures, alors qu'on pourrait tout mettre dans une seule table ?
Dans une base relationnelle, chaque information est stockée une seule fois (le nom d'une classe est dans classes, pas répété pour chaque élève). La jointure permet de les recombiner au moment de la requête, sans duplication ni risque d'incohérence.
Sources
- Spécialité NSI – Numérique et Sciences Informatiques, Éduscol STI. Consulté le 7 novembre 2026.
- Baccalauréat général 2025 – Numérique et sciences informatiques, Ministère de l'Éducation Nationale. Consulté le 7 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.