Cours SQL et MySQL · Module 5: Modifier les données (DML)
DELETE face à TRUNCATE - et un résumé
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
idrevient à 1, comme si le rayon était neuf.
| Caractéristique | DELETE | TRUNCATE |
|---|---|---|
| Sélection des lignes (WHERE) | oui | non |
| Vitesse sur de grandes tables | plus lente | plus rapide |
| Réinitialisation d'AUTO_INCREMENT | non | oui |
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. Que fait la commande TRUNCATE TABLE wypozyczenia; ?
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.