Back-end · 5 mondes · 15 étapes
Bases de données & SQL
Interroger, relier, modifier et concevoir des données, avec une vraie base SQLite.
Progression
0 %
0/15 étapes terminées
Intermédiaire · 9 min de lecture
Écrire sans casser
WHERE, transactions et contraintes
1Définition
Modifier des données est irréversible sans sauvegarde. Trois protections : vérifier le WHERE par un SELECT avant tout UPDATE ou DELETE, grouper les modifications liées dans une transaction (tout ou rien), et laisser les contraintes de la table refuser l'invalide.
2Principes fondamentaux
01
SELECT avant UPDATE
Même WHERE, d'abord en lecture : on voit exactement les lignes qui vont changer.
02
Des transactions pour les opérations liées
BEGIN, les modifications, COMMIT ; ROLLBACK annule tout ce qui n'est pas validé.
03
Nommer les colonnes des INSERT
L'insertion survit aux évolutions de la table.
04
Des mises à jour relatives
SET score = score + 500 lit la valeur courante de chaque ligne.
3Exemples pratiques
Un transfert sûr
1BEGIN;2UPDATE joueurs SET score = score - 200 WHERE pseudo = 'codey';3UPDATE joueurs SET score = score + 200 WHERE pseudo = 'cy';4COMMIT;La base ne connaît jamais l'état où les points ont quitté codey sans arriver chez cy.
Annuler
1BEGIN;2DELETE FROM resultats; -- oups3ROLLBACK; -- rien n'a été suppriméTant que la transaction n'est pas validée, tout peut être annulé.
4Erreurs courantes
UPDATE sans WHERE
À éviter
UPDATE joueurs SET score = 0;À faire
UPDATE joueurs SET score = 0 WHERE pseudo = 'cy';Pourquoi : Tous les scores de la plateforme remis à zéro, sans corbeille.
Deux opérations liées sans transaction
À éviter
UPDATE … ; -- le serveur tombe iciUPDATE … ;À faire
BEGIN; UPDATE … ; UPDATE … ; COMMIT;Pourquoi : Une panne entre les deux laisse la base incohérente.
INSERT sans colonnes
À éviter
INSERT INTO joueurs VALUES (7, 'fanta', 'Bamako', 0, '2026-09-18');À faire
INSERT INTO joueurs (pseudo, ville, score, inscrit) VALUES (…);Pourquoi : La requête casse le jour où la table change.
5Subtilités à connaître
- ◆Certains outils demandent une confirmation avant un UPDATE sans WHERE : une protection née de beaucoup d'accidents.
- ◆Les transactions isolent aussi les lectures concurrentes : deux utilisateurs ne voient pas les modifications à moitié faites de l'autre.
- ◆Une sauvegarde qui n'a jamais été restaurée pour essai n'est pas une sauvegarde, c'est un espoir.
6Vérifie ta compréhension
Question 1/3
Score 0
Que fait DELETE FROM joueurs; ?
Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.