INSERT/UPDATE/DELETE VISUALIZER

Par :

,le

Ordre d’exécution SQL — INSERT, UPDATE & DELETE

Contrairement à SELECT, les commandes INSERT, UPDATE et DELETE ont un ordre d’exécution plus court. Choisissez une commande et naviguez étape par étape.


        
Cliquez sur un bouton pour avancer ou reculer dans l’exécution.

Comment utiliser l’outil ?

L’outil propose trois onglets colorés : vert pour INSERT, bleu pour UPDATE et rouge pour DELETE. Chaque onglet affiche la requête SQL correspondante avec la clause active mise en surbrillance à mesure de la progression. Le bouton Étape suivante avance d’une étape et met à jour le tableau avec le code couleur associé à l’état des lignes.

Un badge indique le nombre de lignes concernées à chaque étape : 0 ligne(s) concernée(s) à l’identification de la table, puis le nombre exact de lignes ciblées dès l’application de la clause WHERE. Le bouton Réinitialiser recharge les 8 lignes d’origine sans aucune mise en forme, permettant de rejouer la simulation depuis le début.

Pourquoi INSERT, UPDATE et DELETE s’exécutent différemment de SELECT

Les commandes INSERTUPDATE et DELETE ne suivent pas le même ordre d’exécution que SELECT. Une requête SELECT traverse sept étapes distinctes : FROMWHEREGROUP BYHAVINGSELECTORDER BY et LIMIT. Les commandes de modification sont plus courtes : elles identifient la table cible, filtrent les lignes concernées, vérifient les contraintes, puis écrivent le résultat.

Comprendre cet ordre est essentiel pour éviter des erreurs de données irréversibles. Une clause WHERE oubliée dans un UPDATE met à jour toutes les lignes de la table sans avertissement. Une violation de contrainte FOREIGN KEY dans un DELETE bloque la suppression si des lignes enfants existent dans une autre table.

Le jeu de données de l’outil

L’outil utilise une table employes de 8 lignes réparties en trois départements : VentesTech et Interim. Chaque ligne contient un identifiant, un nom, un département et un salaire. Ces données servent de base commune aux trois commandes simulées : INSERT ajoute une neuvième employée, UPDATE augmente les salaires des employés du département Ventes, et DELETE supprime les employés du département Interim.

-- Schéma et données initiales
CREATE TABLE employes (
  id          INT          PRIMARY KEY,
  nom         VARCHAR(50)  NOT NULL,
  departement VARCHAR(50)  NOT NULL,
  salaire     DECIMAL(10,2) NOT NULL
);

INSERT INTO employes (id, nom, departement, salaire)
VALUES
  (1, 'Alice',  'Ventes',  2800),
  (2, 'Bob',    'Tech',    3500),
  (3, 'Claire', 'Ventes',  3100),
  (4, 'David',  'Interim', 1800),
  (5, 'Emma',   'Ventes',  2600),
  (6, 'Farid',  'Interim', 1900),
  (7, 'Gaëlle', 'Tech',    4000),
  (8, 'Hugo',   'Interim', 2100);

La commande INSERT en 4 étapes

INSERT suit quatre étapes dans le moteur SQL : identification de la table cible, évaluation des valeurs, vérification des contraintes, puis écriture en base. L’outil visualise la nouvelle ligne en jaune clair pendant l’étape d’évaluation des valeurs, ce qui indique qu’elle est en mémoire mais pas encore persistée. Une fois les contraintes validées (ici id = 9 n’existe pas, la colonne nom est NOT NULL), la ligne passe en vert et intègre définitivement la table.

-- Étape 1 : identifier la table et les colonnes cibles
-- Étape 2 : évaluer les valeurs de la nouvelle ligne en mémoire
-- Étape 3 : vérifier PRIMARY KEY, NOT NULL, UNIQUE, FK, CHECK
-- Étape 4 : écrire la ligne dans la table

INSERT INTO employes (id, nom, departement, salaire)
VALUES (9, 'Inès', 'Tech', 3300);

La commande UPDATE en 5 étapes

UPDATE s’exécute en cinq étapes : identification de la table, sélection des lignes par WHERE, calcul des nouvelles valeurs par SET, vérification des contraintes, puis écriture. L’outil affiche en jaune les lignes ciblées par WHERE departement = 'Ventes', puis en bleu les lignes dont le salaire a été recalculé à salaire * 1.10, et enfin en vert une fois les modifications validées et persistées.

La séquence WHERE → SET est fondamentale : le moteur sélectionne d’abord les lignes à modifier avant de calculer les nouvelles valeurs. Inverser mentalement cet ordre conduit à des erreurs de logique, notamment lors d’un UPDATE sans WHERE qui affecterait toute la table. Un UPDATE sans clause WHERE modifie chaque ligne de la table sans exception.

-- Étape 1 : identifier la table cible
-- Étape 2 : WHERE filtre les lignes (Alice, Claire, Emma → Ventes)
-- Étape 3 : SET calcule les nouvelles valeurs (salaire × 1.10)
-- Étape 4 : vérifier les contraintes sur les nouvelles valeurs
-- Étape 5 : écrire les modifications en base

UPDATE employes
SET    salaire = salaire * 1.10
WHERE  departement = 'Ventes';

La commande DELETE en 4 étapes

DELETE suit quatre étapes : identification de la table, sélection des lignes par WHERE, vérification des contraintes de clés étrangères, puis suppression physique des lignes. L’outil affiche en jaune les lignes ciblées par WHERE departement = 'Interim' (David, Farid, Hugo), puis les barre en rouge à l’étape de suppression. Les lignes non ciblées restent intactes et sans mise en forme particulière.

L’étape de vérification des contraintes est critique : si une ligne à supprimer est référencée par une clé étrangère dans une autre table, le moteur applique le comportement défini par ON DELETE. L’option RESTRICT bloque la suppression, CASCADE supprime automatiquement les lignes enfants, et SET NULL remplace la référence par NULL.

-- Étape 1 : identifier la table cible
-- Étape 2 : WHERE sélectionne les lignes à supprimer (Interim)
-- Étape 3 : vérifier les contraintes FK (CASCADE / RESTRICT / SET NULL)
-- Étape 4 : supprimer les lignes ciblées de la table

DELETE FROM employes
WHERE  departement = 'Interim';