Aller au contenu

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 clause ON, 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 INTO ajoute un enregistrement, UPDATE ... SET ... WHERE modifie des enregistrements existants.
  • Un UPDATE sans 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.

  1. Quelle clause d'une jointure précise la condition qui relie deux tables ?

  2. Avec les tables de la fiche, on exécute UPDATE eleves SET age = 19;. Combien de lignes sont modifiées ?

  3. Dans WHERE age = 17 OR id_classe = 20, une ligne est retenue seulement si les deux conditions sont vraies.

  4. On joint eleves et classes avec ON eleves.id_classe = classes.id_classe. Chaque élève a une classe existante. Combien de lignes contient le résultat de la jointure (sans WHERE) ?

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

  1. Spécialité NSI – Numérique et Sciences Informatiques, Éduscol STI. Consulté le 7 novembre 2026.
  2. 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.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2 Bientôt
  • CM1 Bientôt
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page