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

Exemple
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

Exemple
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.