Aller au contenu
studuel

NSI · Terminale · Bases de données

Le langage SQL

Dire ce qu’on veut, pas comment.

Illustration : Le langage SQL

En bref

SQL est un langage déclaratif : on décrit le résultat souhaité, et le SGBD choisit lui-même comment l’obtenir.

SQL est un langage déclaratif : on décrit le résultat souhaité, et le SGBD choisit lui-même comment l’obtenir. C’est ce qui le distingue de Python.

Les deux familles

FamilleSes commandes
Définition des donnéesCREATE TABLE, ALTER TABLE, DROP TABLE
Manipulation des donnéesSELECT, INSERT, UPDATE, DELETE

L’interrogation

SELECT nom, moyenne FROM eleve WHERE moyenne >= 15 ORDER BY moyenne DESC

ClauseSon rôle
SELECTChoisit les colonnes — l’étoile les prend toutes, à éviter en production
FROMDésigne la ou les tables
WHEREFiltre les lignes
ORDER BYTrie, en ASC (défaut) ou DESC
DISTINCT, LIMITÉlimine les doublons ; borne le nombre de résultats

Dans WHERE : les comparaisons, AND, OR, NOT, BETWEEN, IN, LIKE (avec le joker pour-cent), IS NULL.

Écrire dans la base

CommandeSa forme
INSERTINSERT INTO eleve (nom, classe_id) VALUES ('Dupont', 3)
UPDATEUPDATE eleve SET moyenne = 14 WHERE id = 12
DELETEDELETE FROM eleve WHERE id = 12

UPDATE et DELETE sans WHERE s’appliquent à toutes les lignes de la table. C’est l’erreur la plus coûteuse du langage.

Les jointures

SELECT eleve.nom, classe.niveau FROM eleve JOIN classe ON eleve.classe_id = classe.id

JointureCe qu’elle garde
JOIN (INNER)Seulement les lignes ayant une correspondance des deux côtés
LEFT JOINToutes les lignes de gauche, complétées par NULL — c’est ce qu’il faut pour lister les élèves sans classe

Oublier la condition ON produit un produit cartésien : chaque ligne de la première table combinée à chaque ligne de la seconde.

Les agrégats

COUNT, SUM, AVG, MIN, MAX résument un ensemble de lignes en une valeur. Avec GROUP BY, le résumé se fait par groupe :

SELECT classe_id, AVG(moyenne) FROM eleve GROUP BY classe_id

ClauseSur quoi elle porteQuand elle agit
WHERELes lignesAvant le regroupement
HAVINGLes groupesAprès le regroupement

L’injection SQL

Construire une requête en concaténant une saisie utilisateur permet à un attaquant d’en modifier le sens.

La parade n’est ni le filtrage des apostrophes ni la vérification côté navigateur, mais les requêtes paramétrées — où la valeur ne peut jamais être interprétée comme du code.

Ordre logique d’exécution : FROM, puis WHERE, puis GROUP BY, puis HAVING, puis SELECT, puis ORDER BY. Il explique à lui seul pourquoi HAVING ne peut pas remplacer WHERE.

Teste-toi

6 questions pour vérifier

Touche une réponse : la correction s’affiche tout de suite.

  1. 1.SQL est un langage…

  2. 2.Quelle est la différence entre WHERE et HAVING ?

  3. 3.Que fait un LEFT JOIN de plus qu’un JOIN ?

  4. 4.Que produit une jointure dont on a oublié la condition ON ?

  5. 5.Que se passe-t-il si l’on écrit un DELETE sans clause WHERE ?

  6. 6.Quelle est la parade efficace contre l’injection SQL ?

0 / 6 questions

Dans l’app, ce chapitre a son quiz complet, chronométré, et tes erreurs reviennent au bon moment pour ne plus les refaire.

Continuer dans l’app
Aperçu flouté de la fiche de révision

La fiche de révision, sur une page

Tout « Le langage SQL » sur une seule page A4 illustrée : l’essentiel, les pièges et un mini-test. Elle se débloque dans l’app avec des gemmes — et ton compte gratuit en offre assez pour tes trois premières fiches.

Débloquer la fiche dans l’app

Dans le même thème

NSI en terminale : passe à l’entraînement.

Le quiz complet, les exercices corrigés, les duels contre des élèves de ton niveau et un coach IA qui t’explique ce qui bloque.

Commencer gratuitement