Cours SQL et MySQL · Module 5: Modifier les données (DML)

DELETE face à TRUNCATE - et un résumé

2 min de lecture
Dans cette leçon3

Tu connais déjà les trois grandes commandes du scribe. Pour finir, comparons DELETE à son cousin plus rapide - TRUNCATE.

DELETE - un scalpel précis

DELETE supprime les lignes sélectivement, selon le WHERE. Il peut supprimer une ligne, plusieurs, ou (sans WHERE) toutes - en les retirant une par une :

1DELETE FROM wypozyczenia WHERE id = 3;

TRUNCATE - vider tout le rayon

TRUNCATE vide la table entière en un seul mouvement - c'est comme balayer tous les parchemins d'un rayon d'un seul coup :

1TRUNCATE TABLE wypozyczenia;

Différences par rapport à DELETE :

  • Vide toute la table - il n'accepte pas de WHERE.
  • Est plus rapide pour les grandes tables - il ne supprime pas ligne par ligne.
  • Réinitialise AUTO_INCREMENT - le compteur id revient à 1, comme si le rayon était neuf.
CaractéristiqueDELETETRUNCATE
Sélection des lignes (WHERE)ouinon
Vitesse sur de grandes tablesplus lenteplus rapide
Réinitialisation d'AUTO_INCREMENTnonoui

Un court rappel

DELETE est un scalpel, TRUNCATE est un balai. Les deux vident des rayons, mais TRUNCATE le fait en un seul geste et relance la numérotation id à zéro. Ceci n'est qu'un premier pas - dans des lieux ultérieurs, nous reviendrons plus d'une fois sur cette comparaison.

Tu as repéré une erreur dans cette leçon ?

Teste tes connaissances

Réponds aux questions de cette leçon. Choisis une réponse pour voir tout de suite si elle est correcte.

  1. 1. Que fait la commande TRUNCATE TABLE wypozyczenia; ?

  2. 2. En quoi TRUNCATE diffère-t-il de DELETE sans WHERE ?

Voici 2 des 3 questions de cette leçon. Réponds aux autres dans le jeu.

Tâches pratiques dans le jeu

  • Clique dans l'ordre

    Clique sur les éléments dans l'ordre où l'on construit une commande qui vide toute la table :

  • Éditeur de code

    Écris une commande qui supprime de la table ksiazki tous les livres marqués comme indisponibles (dostepna = 0). Utilise une clause WHERE.