Bases de données et SQL
Les données sont les nouvelles ressources naturelles. SQL est leur pelle.
Cours
Modèle relationnel
Une base de données relationnelle est constituée de tables. Chaque table a des colonnes (attributs) et des lignes (enregistrements).
Clé primaire : identifie de façon unique chaque ligne. Clé étrangère : référence une clé primaire d'une autre table.
SELECT
SELECT nom, age FROM eleves;
SELECT * FROM eleves WHERE age >= 17;
SELECT nom FROM eleves ORDER BY age DESC LIMIT 5;
SELECT classe, COUNT(*) FROM eleves GROUP BY classe;
Jointures
SELECT e.nom, c.titre
FROM eleves AS e
JOIN cours AS c ON e.classe = c.classe;
INSERT / UPDATE / DELETE
INSERT INTO eleves (nom, age) VALUES ('Alice', 17);
UPDATE eleves SET age = 18 WHERE nom = 'Alice';
DELETE FROM eleves WHERE age < 15;
Agrégations
- COUNT, SUM, AVG, MIN, MAX
- Souvent combinées avec GROUP BY
Méthodes
Construire une requête SELECT
- 1SELECT colonnes (ou *)
- 2FROM table(s)
- 3WHERE conditions de filtrage
- 4GROUP BY pour agrégations
- 5ORDER BY pour trier
- 6LIMIT pour borner
Astuces & pièges
Les opérations s'exécutent dans l'ordre : FROM → WHERE → GROUP BY → SELECT → ORDER BY → LIMIT. Penser dans cet ordre aide.
DELETE sans WHERE supprime TOUT. Faute classique qui ruine une carrière. Toujours tester avec SELECT d'abord.
"Little Bobby Tables" : un élève nommé Robert'); DROP TABLE eleves; -- a fait disparaître toute sa classe. Injection SQL, le drame.
Teste-toi
1.Pour récupérer toutes les colonnes :
2.DELETE FROM t; supprime :
3.Pour compter les lignes :
Exercices corrigés
Tu galères ? Normal. Cherche d'abord, regarde le corrigé après.
Table eleves(id, nom, classe, moyenne). Écrire la requête pour récupérer le nom et la moyenne de tous les élèves de "Terminale".
Sur la même table, récupérer les 5 élèves avec la meilleure moyenne, triés par ordre décroissant.
Tables eleves(id, nom, classe_id) et classes(id, nom). Lister chaque élève avec le nom de sa classe (jointure).
Pour aller plus loin
Vidéos, fiches et exos vérifiés (Maths et tiques, Lumni, Khan Academy, Physagreg…).