MySQL: Supprimer Données de Table - Différence entre TRUNCATE, DELETE et DROP
Tutoriel de Stefan Trost | 30/11/2022 à 19:32
Dans ce petit tutoriel, nous voulons avoir un aperçu de plus près de la différence entre les commandes MySQL TRUNCATE, DELETE et DROP. Les trois commandes ont à voir avec la suppression des données des tables ou la suppression de tables entières.
Le tutoriel est divisé en les sections suivantes:
- DELETE: Suppression des enregistrements individuels
- Différence entre TRUNCATE et DELETE
- Suppression d'une table complète avec DROP
DELETE: Suppression des enregistrements individuels
La commande la plus connue est DELETE. Avec DELETE, il est possible de supprimer des enregistrements individuels d'une table. Nous avons ici un exemple:
DELETE FROM tab WHERE id = 2; DELETE FROM tab WHERE id < 7; DELETE FROM tab WHERE nom = 'Anton'; DELETE FROM tab WHERE nom LIKE '%abc%';
Ce sont quatre instructions MySQL que chacun supprime les enregistrements du tableau "tab" en fonction de certains critères. La première commande supprime l'enregistrement avec l'ID 2, la deuxième commande tous les enregistrements qui ont un ID inférieur à 7, et la troisième commande supprime l'enregistrement ou les enregistrements dans lesquels la colonne "nom" est égale à "Anton" respectivement ne contient que "Anton". Après tout, la dernière commande supprime tous les enregistrements dans lesquels la colonne "nom" contient la chaîne "abc".
Dans tous ces exemples, nous avons décrit en détail quels enregistrements devraient être supprimés derrière WHERE. Mais nous pouvons également omettre la déclaration WHERE:
DELETE FROM tab;
Cette instruction n'a aucune limitation selon quels critères les enregistrements doivent être supprimés. Par conséquent, tous les enregistrements de la table seront perdus irresibles. La table entière est vide après cette requête.
Différence entre TRUNCATE et DELETE
Aussi avec la commande TRUNCATE, tous les enregistrements d'une table sont supprimés. Vous pouvez utiliser cette commande de la manière suivante:
TRUNCATE TABLE tab;
Cette commande supprime également toutes les données de façon permanente du tableau "tab" et, par conséquent, l'effet de cette instruction est identique à "DELETE FROM tab". Cependant, la mise en œuvre technique est différente. Pendant la suppression avec DELETE, chaque enregistrement de la table sera supprimé individuellement, tandis que TRUNCATE a une approche différente: TRUNCATE supprime d'abord le tableau entier, y compris les définitions des colonnes et alors crée un nouveau tableau vide identique sans données.
En conséquence, TRUNCATE est beaucoup plus rapide que l'instruction DELETE. En outre, dans la nature des choses réside comment les deux commandes de la suppression traitent les colonnes AUTO_INCREMENT. TRUNCATE réinitialise la valeur AUTO_INCREMENT à 1, car l'ensemble du tableau est reconstruit, tandis que DELETE ne fait aucune réinitialisation et la colonne sera en comptant là où elle a été arrêtée. Par conséquent, si vous souhaitez conserver votre valeur AUTO_INCREMENT, vous devez compter - malgré les performances assez mauvaises - sur DELETE.
Suppression d'une table complète avec DROP
La dernière commande que nous examinerons s'appelle DROP:
DROP TABLE tab; DROP TABLE tab1, tab2; DROP TABLE IF EXISTS tab1, tab2;
DROP élimine toute la table, y compris toutes les données et les définitions des colonnes de la table. Ainsi, après avoir effectué une commande DROP, toute la table aura disparu et ne peut pas être récupérée. En revanche, DELETE et TRUNCATE ne suppriment que les données du tableau, tandis que les définitions du tableau restent.
Vous pouvez utiliser DROP comme indiqué dans l'exemple. Avec la première ligne, l'ensemble du tableau "tab" est supprimé, avec la deuxième ligne, vous pouvez voir comment supprimer plusieurs tables simultanément dans une seule instruction. Dans la troisième ligne, "IF EXISTS" (si existe) est ajouté. Cette amélioration garantit qu'aucun message d'erreur n'apparaît lorsque vous essayez de supprimer un tableau qui n'existe pas.
Avertissement
Vous devez gérer les commandes DELETE, TRUNCATE et DROP très attentivement, car les enregistrements ou toute la table ne peuvent pas être restaurés après la suppression. Veuillez vous assurer que vous n'avez plus besoin des données et faire toujours une sauvegarde de votre base de données avant d'utiliser les commandes comme précaution.
Sinon, la seule chose que vous pouvez faire est de créer une nouvelle colonne à nouveau.
Sur l’Auteur
Vous pouvez trouver des logiciels de Stefan Trost sur fr.sttmedia.com. Avez-vous besoin d'un logiciel personnalisé selon vos propres besoins? Écrivez-nous: fr.sttmedia.com/contact
Voir Profil
Sujets Connexes
Renommer des Fichiers en ses Noms de Dossier
Tutoriel | 0 Commentaires
MySQL: Ajouter une nouvelle Colonne à une Table
Tutoriel | 0 Commentaires
SQLite: Tester si une Table existe
Info | 0 Commentaires
Supprimer les Espaces du Début et de la Fin des Lignes de Textes
Tutoriel | 0 Commentaires
CSS: Comment inclure CSS dans HTML
Tutoriel | 0 Commentaires
Réparer des Fichiers Texte avec des Sauts de Ligne Mixtes
Tutoriel | 0 Commentaires
Réécrire Fichiers Texte avec une Longueur de Ligne Fixe
Tutoriel | 0 Commentaires
Avis Important
Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.
Participer
Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.