Introduction aux bases de données et au langage SQL
Objectifs
- Expliquer ce qu'est une base de données relationnelle (tables, lignes, colonnes).
- Distinguer projection (
SELECTcolonnes) et sélection (WHERE). - Écrire des requêtes
SELECT … FROM …simples, avec ou sansWHERE. - Pratiquer avec l'éditeur intégré et une enquête SQL.
Idée clé
Une base relationnelle organise les données en tables. Une requête SQL extrait un résultat : on choisit quelles colonnes garder (projection) et quelles lignes garder (sélection).
Pourquoi une base de données ?
Par rapport à un simple fichier, une BDD facilite le stockage structuré, la recherche, la mise à jour et le contrôle d'intégrité. On peut la comparer à des tableaux (comme en CSV), mais gérés par un moteur de requêtes.
En 1970, Edgar F. Codd propose le modèle relationnel : tables reliées par des relations logiques.
Table = lignes + colonnes
- Ligne (enregistrement) : un objet (un étudiant…).
- Colonne (attribut) : une caractéristique (nom, âge…).
SQL : parler à la base
Le SQL (Structured Query Language) sert à interroger et manipuler ces tables. Une requête produit en général une table résultat.
Projection : choisir les colonnes (SELECT)
La projection consiste à ne garder que certaines colonnes.
SELECT * FROM Etudiants;
* = toutes les colonnes. Pour n'afficher que le nom et l'âge :
SELECT nom, age FROM Etudiants;
Sélection : filtrer les lignes (WHERE)
La sélection (au sens relationnel) filtre les lignes selon une condition, avec WHERE :
SELECT nom FROM Etudiants WHERE age > 17;
Ici : projection sur nom et sélection des lignes où age > 17.
On peut combiner les deux :
SELECT nom, classe FROM Etudiants WHERE classe = 'Terminale';
Pratiquer
Activité : SQL Murder Mystery
Résolvez une enquête en écrivant des requêtes SQL (site en anglais) :
Piège fréquent
Appeler « sélection » le simple SELECT colonne. En vocabulaire relationnel :
SELECTcolonnes → projection ;WHERE→ sélection (filtrage des lignes).
Le mot SELECT du SQL est trompeur : il lance la requête, mais le filtrage des lignes, c'est WHERE.
À retenir
- Table = lignes (enregistrements) + colonnes (attributs).
- SQL = langage de requêtes sur une BDD relationnelle.
- Projection = choisir les colonnes (
SELECT nom, age). - Sélection = filtrer les lignes (
WHERE condition). SELECT * FROM Tablelit toute la table.- On combine souvent projection et sélection dans une même requête.
Pour s'entraîner / Suite
Utilisez l'éditeur ci-dessus, puis l'enquête Murder Mystery. Plus tard : jointures, agrégats, et liens avec les dictionnaires / tables déjà vus en Python.