Différence entre DELETE et TRUNCATE

image_pdfimage_print

Quelle est la différence entre DELETE et TRUNCATE ? – Dans SQL, il y a plusieurs façon pour supprimer les lignes d’une table. Vous pouvez utiliser les commandes TRUNCATE et DELETE. Bien que le résultat final des deux commandes soit le même, il existe des différences très importantes que vous devez connaître.
 
 

Table de comparaison
DELETETRUNCATE
SuppressionVous pouvez spécifier le tuple que vous souhaitez supprimer.Il supprime tous les tuples d’une relation.
WHERELa commande DELETE peut avoir une clause WHERE.La commande TRUNCATE n’a pas de clause WHERE.
La vitesseLa commande DELETE agit plus lentement que TRUNCATE.TRUNCATE est plus rapide que DELETE.
RestaurationLa commande DELETE peut être suivie par COMMIT ou ROLLBACK.La commande TRUNCATE ne peut pas être suivie par ROLLBACK.
TransactionDELETE enregistre le log des transactions pour chaque tuple supprimé.TRUNCATE enregistre le log des transactions pour chaque donnée supprimée.
SuppressionLa commande DELETE supprime les tuples un par un.TRUNCATE supprime les données entière contenant les tuples.
Le langageDELETE est une commande du langage de manipulation de données.TRUNCATE est une commande du langage de définition de données.
Différence entre Donnée et InformationDifférence entre Donnée et InformationLes données sont des données brutes, non analysées, non organisées, non liées, non interrompues, utilisées pour obtenir des informations après l’analyse. Tandis que, l’information est…Lire plus
Définition de DELETE

La commande DELETE permet de supprimer des lignes d’une table. La clause WHERE peut être utilisée pour supprimer uniquement certaines lignes. Si aucune condition WHERE n’est spécifiée, toutes les lignes seront supprimées. Après avoir effectué une opération DELETE, vous devez COMMIT ou ROLLBACK la transaction pour rendre la modification permanente ou pour l’annuler. Notez que cette opération provoquera le déclenchement de tous les déclencheurs DELETE sur la table.

Exemple :
Supposons qu’on a une table STUDENT qui contient 50 étudiants

SQL> SELECT COUNT(*) FROM student;

  COUNT(*)
----------
        50
SQL> DELETE FROM student WHERE name = 'Alex';
 
5 rows deleted.
SQL> COMMIT;
 
Commit complete.
SQL> SELECT COUNT(*) FROM student;
 
  COUNT(*)
----------
        45
Différence entre Instance et SchémaDifférence entre Instance et SchémaSchéma et Instance sont les termes essentiels liés aux bases de données. La principale différence entre schéma et instance réside dans leur définition où Schéma…Lire plus

 

Définition de TRUNCATE

TRUNCATE supprime toutes les lignes d’une table. L’opération ne peut pas être annulée et aucun déclencheur ne sera déclenché. En tant que tel, TRUCATE est plus rapide et n’utilise pas autant d’espace que DELETE.

SQL> TRUNCATE TABLE student;
 
Table truncated.
 
SQL> SELECT COUNT(*) FROM student;
 
  COUNT(*)
----------
         0

 

Conclusion:

Si vous souhaitez personnaliser la suppression des enregistrements d’une table, vous pouvez utiliser la commande DELETE. Si vous souhaitez vider la table, c’est-à-dire que vous ne voulez pas laisser de données dans une table, utilisez la commande TRUNCATE.
Questions techniques sur MYSQLQuestions techniques sur MYSQL – Partie 1Nous avons divisé cette collection de questions techniques sur MYSQL sous sept chapitres là, c’est la premiere, puis vous trouverez la deuxième partie, la troisième…Lire plus

Partagez cet article

Une pensée sur “Différence entre DELETE et TRUNCATE

  • Avatar
    novembre 20, 2019 à 11:56
    Permalink

    Well Basically you know the DML AND DDL concept the above difference is just keep in mind but the key difference is that Truncate only manuplates the data without affecting a table structure and key constraints but on the other hand Delete will affect the table structure also if we won’t specify a where conditions.

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *