Skip to content

Ouverture : interroger des données avec SQL

Le tableur est fait pour qu'un humain travaille dans les données, cellule par cellule. Mais quand une table compte des millions de lignes, on ne l'ouvre plus : on l'interroge. Pour ça, il existe un langage, et il est partout : SQL.

Cours ici, activité sur Capytale

Cette page est le cours. L'activité se fait sur Capytale, sur une base de données réelle : les passagers du Titanic.

Ce chapitre est une ouverture : SQL n'est pas au programme de SNT, et ne sera pas évalué. Il est là parce qu'il éclaire tout le reste.

Pourquoi apprendre ça

Trois raisons, et la troisième est la vraie.

C'est plus rapide. Donne-toi 50 000 lignes et cherche le prix moyen des billets par port d'embarquement : au tableur, tu vas souffrir. En SQL, c'est trois lignes et un résultat immédiat.

C'est partout. Presque toutes les données du monde vivent dans des bases interrogées en SQL : ton dossier médical, ton relevé bancaire, tes commandes en ligne, tes notes dans Pronote. Le tableur, lui, ne sort jamais vraiment de ton ordinateur. SQL n'est pas un outil de spécialiste, c'est une compétence de base dans un monde où les données sont partout.

C'est une autre façon de programmer, et c'est le plus intéressant.

Le grand renversement : dire quoi, pas comment

Depuis septembre, tous tes programmes disent à la machine comment faire, étape par étape : avance, tourne, répète 4 fois, parcours les colonnes, colorie ce pixel. On appelle ça la programmation impérative : tu donnes des ordres, dans l'ordre.

SQL fonctionne à l'envers. Tu décris ce que tu veux obtenir, et jamais comment l'obtenir :

SELECT sex, age
FROM passagers
WHERE pclass = 1
ORDER BY age DESC

Traduction : « je veux le sexe et l'âge des passagers de 1ère classe, du plus âgé au plus jeune ». Et c'est tout.

Regarde bien ce qu'il n'y a pas dans cette requête : aucune boucle pour parcourir les 891 passagers, alors que tu viens de passer des semaines à en écrire. Tu ne dis pas à la machine d'examiner les lignes une par une : tu lui dis ce que tu veux, elle se débrouille.

On appelle ça un langage déclaratif. C'est l'autre grande famille de langages de programmation, et tu viens d'y entrer.

Les quatre traitements, un mot-clé chacun

Tu connais déjà les traitements de base sur une table. SQL leur donne un mot :

Ce qu'on veut faire Au tableur En SQL
choisir des colonnes masquer des colonnes SELECT
dire dans quelle table choisir l'onglet FROM
filtrer des lignes AutoFiltre WHERE
trier Données, Trier ORDER BY
calculer SOMME, MOYENNE, MAX, MIN COUNT, AVG, MAX, MIN

Les mêmes gestes, les mêmes données, un autre outil. C'est le fil de tout ce chapitre.

Le = prend ici son troisième sens

Attention, tu as déjà croisé ce signe deux fois, et il ne veut toujours pas dire la même chose :

Exemple Ce que = veut dire
En Python age = 16 range la valeur 16 dans la boîte age
Dans le tableur =SOMME(A1:A10) démarre une formule à calculer
En SQL WHERE sex = 'female' teste si c'est égal : garde les lignes où c'est vrai

En SQL, le = retrouve donc le sens de l'égalité des mathématiques : c'est une question posée à chaque ligne (« ce passager est-il une femme ? »), pas un rangement. Le même symbole, trois métiers : c'est le contexte qui te dit lequel.

L'activité : le Titanic

À faire

Ouvre l'activité Capytale indiquée par ton professeur. Tu y interrogeras une base réelle : les 891 passagers du Titanic, avec leur classe, leur sexe, leur âge, le prix de leur billet, leur port d'embarquement, et s'ils ont survécu.

Tu y découvriras SELECT, WHERE, ORDER BY, les fonctions de calcul, puis GROUP BY, qui permet de calculer par catégorie (par exemple : le taux de survie par classe).

Des données à manier avec précaution

Cette base recense 891 passagers sur les 2 224 personnes à bord : elle est incomplète. L'âge d'un passager sur cinq est inconnu, et ces absences ne sont pas réparties au hasard (elles touchent davantage la 3e classe).

Tu retrouves ici la leçon du mini-projet YouTube : avant de conclure, demande-toi toujours ce que les données ne disent pas.

Ce que tu vas découvrir

Sans rien dévoiler : à la fin de l'activité, tu calculeras le taux de survie par classe. Les chiffres que tu obtiendras ne sont pas neutres, et ils racontent quelque chose de très concret sur les inégalités face à la mort, cette nuit-là.

C'est peut-être la chose la plus importante de ce chapitre : les données ne sont pas de la décoration. Bien interrogées, elles disent la vérité sur le monde, y compris ce qu'on préférerait ne pas voir.

Ce qu'on retient

  • SQL est le langage universel pour interroger des bases de données ; il travaille sur des tables, comme le tableur.
  • Il est déclaratif : on dit ce qu'on veut, jamais comment l'obtenir. Aucune boucle, contrairement à tout ce qu'on a écrit jusqu'ici (Python est impératif).
  • Les quatre traitements ont chacun leur mot-clé : SELECT/FROM (choisir), WHERE (filtrer), ORDER BY (trier), COUNT/AVG/MAX/MIN (calculer).
  • En SQL, = est un test d'égalité, pas une affectation (Python) ni le début d'une formule (tableur).
  • Toujours la même exigence : critiquer les données avant d'en tirer une conclusion.