🗃️sql

Apprendre le SQL pour la NSI : SELECT, WHERE, JOIN expliqués

30 mars 2026 5 min de lecture

Pourquoi le SQL est essentiel en NSI ?

Si tu suis la spécialité Numérique et Sciences Informatiques (NSI), tu vas forcément croiser la route des bases de données. Derrière presque toutes les applications que tu utilises (réseaux sociaux, sites de e-commerce, applications bancaires) se cache une base de données bien organisée. Le SQL (Structured Query Language) est le langage universel pour communiquer avec elles. C'est comme la clé qui te permet d'aller chercher, d'ajouter, de modifier ou de supprimer l'information stockée. En NSI, tu dois savoir le manipuler pour tes projets et pour l'épreuve finale. Ne t'inquiète pas, on commence par les bases : SELECT, WHERE et JOIN sont les trois piliers sur lesquels tout repose.

La requête SELECT : ton premier pas en SQL

La commande SELECT est la plus fondamentale. Elle te permet de sélectionner des données dans une table. Imagine une table "Élèves" avec des colonnes comme `id`, `nom`, `prenom`, `classe`. Pour voir tous les noms et prénoms, tu écrirais :

SELECT nom, prenom FROM Élèves;

Le mot-clé FROM indique dans quelle table chercher. Si tu veux absolument toutes les colonnes, tu peux utiliser l'astérisque (*) :

SELECT * FROM Élèves;

C'est pratique pour explorer une table, mais dans un vrai projet, il vaut mieux préciser les colonnes dont tu as besoin pour des raisons de performance et de clarté.

Ordonner et limiter les résultats

Les résultats d'un SELECT peuvent être triés avec ORDER BY. Par exemple, pour avoir les élèves classés par nom, puis par prénom :

SELECT nom, prenom FROM Élèves ORDER BY nom ASC, prenom ASC;

ASC signifie ascendant (de A à Z, de 0 à 9). Pour l'ordre inverse, utilise DESC (descendant). Tu peux aussi limiter le nombre de résultats avec LIMIT, très utile pour éviter d'afficher des milliers de lignes pendant tes tests.

SELECT * FROM Notes ORDER BY note DESC LIMIT 5;

Cette requette te donnerait les 5 meilleures notes !

Affiner la recherche avec WHERE

SELECT * FROM Élèves c'est bien, mais si ta table a 1000 élèves, tu es un peu perdu. C'est là qu'intervient la clause WHERE ("où" en anglais). Elle te permet de filtrer les résultats selon une condition.

SELECT nom, prenom FROM Élèves WHERE classe = 'Terminale A';

Ici, tu ne récupères que les élèves de la Terminale A. Tu peux utiliser différents opérateurs :

  • = : Égal à
  • >, <, >=, <= : Supérieur/Inférieur à
  • <> ou != : Différent de
  • LIKE : Pour chercher un motif (très utile avec le symbole %).

Exemple avec LIKE :

SELECT titre FROM Livres WHERE titre LIKE '%Python%';

Cette requête trouve tous les livres dont le titre contient le mot "Python". Le symbole % remplace n'importe quelle séquence de caractères.

Combiner les conditions avec AND et OR

Tu peux être encore plus précis en combinant plusieurs conditions.

-- Les élèves de Terminale A qui ont plus de 15 de moyenne
SELECT nom, prenom FROM Élèves WHERE classe = 'Terminale A' AND moyenne >= 15;

-- Les élèves de Terminale A OU de Première B
SELECT nom, prenom FROM Élèves WHERE classe = 'Terminale A' OR classe = 'Première B';

Pense toujours à bien utiliser les parenthèses si tes conditions deviennent complexes pour contrôler l'ordre d'évaluation !

La puissance des jointures (JOIN) : relier les tables

C'est le concept le plus important et souvent le plus nouveau pour les débutants. Dans une base de données bien conçue, l'information est répartie dans plusieurs tables pour éviter les répétitions (c'est la normalisation). Par exemple, tu pourrais avoir :

  • Une table Élèves (id_eleve, nom, prenom, id_classe)
  • Une table Classes (id_classe, nom_classe, professeur_principal)

Comment faire pour afficher le nom de l'élève ET le nom de sa classe ? Il faut joindre (JOIN) les deux tables sur le champ qu'elles ont en commun : `id_classe`.

SELECT Élèves.nom, Élèves.prenom, Classes.nom_classe
FROM Élèves
INNER JOIN Classes ON Élèves.id_classe = Classes.id_classe;

Décortiquons :

  • INNER JOIN : Type de jointure le plus courant. Il ne garde que les lignes où il y a une correspondance dans les deux tables.
  • ON : C'est la condition qui dit comment relier les tables. Ici, on relie la colonne `id_classe` de la table Élèves à la colonne `id_classe` de la table Classes.

Les différents types de JOIN

Il en existe plusieurs, mais en NSI, concentre-toi sur ces deux-là :

  • INNER JOIN : Résultat = intersection. Seules les lignes avec une correspondance dans les deux tables.
  • LEFT JOIN (ou LEFT OUTER JOIN) : Garde TOUTES les lignes de la table de gauche (celle après FROM), même si il n'y a pas de correspondance dans la table de droite. Les champs manquants seront NULL.

Exemple avec LEFT JOIN : Afficher tous les élèves, même ceux qui ne sont pas encore inscrits dans une classe.

SELECT Élèves.nom, Classes.nom_classe
FROM Élèves
LEFT JOIN Classes ON Élèves.id_classe = Classes.id_classe;

Un élève sans `id_classe` (ou avec un `id_classe` qui n'existe pas dans la table Classes) apparaîtra avec `nom_classe` = NULL.

Mettre en pratique : un mini-projet NSI

Pour bien assimiler, rien ne vaut la pratique. Crée une petite base de données avec deux tables :

CREATE TABLE Auteurs (id INTEGER PRIMARY KEY, nom TEXT);
CREATE TABLE Livres (id INTEGER PRIMARY KEY, titre TEXT, id_auteur INTEGER, FOREIGN KEY (id_auteur) REFERENCES Auteurs(id));

Insère quelques données, puis entraîne-toi avec ces requêtes :

  1. Lister tous les livres.
  2. Trouver les livres dont le titre contient "algorithme".
  3. Afficher le titre du livre et le nom de son auteur (ça, c'est une jointure !).
  4. Afficher tous les auteurs, même ceux qui n'ont pas encore écrit de livre (LEFT JOIN).

Ces compétences en SELECT, WHERE et JOIN constituent l'essentiel de ce que tu dois maîtriser pour interroger des bases de données en NSI. Avec ça, tu es déjà bien armé pour la majorité des exercices et pour commencer à travailler sur des projets plus ambitieux !

📚 Pour aller plus loin

Questions fréquentes

Est-ce que SQL est difficile à apprendre pour un lycéen en NSI ?

Pas du tout ! Les bases de SQL, et notamment SELECT, WHERE et les JOIN simples, sont très accessibles. C'est un langage déclaratif (tu dis ce que tu veux, pas comment l'obtenir) qui se rapproche parfois du langage naturel. Avec un peu de pratique sur des exemples concrets, tu le maîtriseras rapidement.

Quel logiciel utiliser pour s'entraîner au SQL en NSI ?

Plusieurs options s'offrent à toi. Pour débuter, des sites comme SQLZoo ou SQLBolt permettent de s'entraîner directement dans le navigateur. Pour des projets plus poussés, tu peux installer SQLite (très léger et souvent utilisé en NSI) avec un gestionnaire comme DB Browser for SQLite, ou utiliser le mode base de données dans ton IDE Python (comme Thonny) si tu connectes Python à SQL.

Les JOIN, c'est vraiment indispensable ?

Oui, absolument. C'est même l'un des points les plus importants du programme de NSI sur les bases de données. Comprendre les JOIN (INNER et LEFT surtout) est crucial pour exploiter la puissance des bases de données relationnelles. Sans JOIN, tu ne pourrais pas relier les informations entre plusieurs tables, ce qui limite énormément ce que tu peux faire. Prends le temps de bien les comprendre avec des schémas.

Dois-je apprendre par cœur la syntaxe exacte de SQL ?

Non, l'objectif en NSI est de comprendre les concepts et de savoir les appliquer. Tu auras très probablement droit à un aide-mémoire (ou "mémento") pendant l'épreuve écrite. L'important est de savoir quelle commande utiliser (SELECT pour lire, WHERE pour filtrer, JOIN pour relier) et de comprendre la logique derrière. La syntaxe exacte vient avec la pratique.

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
SQL NSIrequetes SQL lyceeapprendre SQL
Pixel