Différence entre Supprimer et Tronquer

Anonim

Supprimer et tronquer

Les commandes SQL (Structured Query Language), Delete et Truncate sont utilisées pour supprimer les données stockées dans les tables d'une base de données. Delete est une instruction DML (Data Manipulation Language) et supprime certaines ou toutes les lignes d'une table. La clause Where est utilisée pour spécifier les lignes à supprimer et si la clause Where n'est pas utilisée avec l'instruction Delete, toutes les données de la table sont supprimées. Truncate est une instruction DDL (Data Definition Language) et supprime des données entières de la table. Ces deux commandes ne détruisent pas la structure de la table et les références à la table, et seules les données sont supprimées si nécessaire.

L'instruction Delete Statement

Delete permet à l'utilisateur de supprimer des données d'une table existante dans une base de données en fonction d'une condition spécifiée et la clause Where est utilisée pour déterminer cette condition. La commande Supprimer est référencée en tant qu'exécution du journal car elle supprime une seule ligne à la fois et conserve une entrée pour chaque suppression de ligne dans le journal des transactions. Donc, cela provoque un ralentissement de l'opération. Delete est une instruction DML. Elle n'est donc pas automatiquement validée lors de l'exécution de la commande. Par conséquent, l'opération de suppression peut être annulée pour accéder à nouveau aux données, si nécessaire. Après l'exécution de la commande Supprimer, elle doit être validée ou annulée afin d'enregistrer les modifications de manière permanente. L'instruction Delete ne supprime pas la structure de table de la table de la base de données. En outre, il ne libère pas l'espace mémoire utilisé par la table.

La syntaxe typique de la commande Supprimer est indiquée ci-dessous.

DECLARER DE

ou

DELETE FROM WHERE

Instruction Truncate

Truncate supprime toutes les données d'une table existante dans une base de données, mais conserve la même structure de table, les privilèges d'accès et les relations avec les autres tables. Il n'est donc pas nécessaire de définir à nouveau la table et l'ancienne structure de table peut être utilisée si l'utilisateur souhaite réutiliser la table. Truncate supprime des données entières en désallouant les pages de données utilisées pour conserver les données, et seules ces désallocations de page sont conservées dans le journal des transactions. Par conséquent, la commande truncate n'utilise qu'un nombre réduit de ressources système et de journal des transactions pour le fonctionnement, donc elle est plus rapide que les autres commandes associées. Truncate est une commande DDL, donc il utilise des engagements automatiques avant et après l'exécution de l'instruction. Par conséquent, tronquer ne peut pas restaurer les données de quelque manière que ce soit. Il libère de l'espace mémoire utilisé par la table après l'exécution. Mais l'instruction Truncate ne peut pas être appliquée aux tables référencées par des contraintes de clé étrangère.

Voici la syntaxe commune de l'instruction Truncate.

TRUNCATE TABLE

Quelle est la différence entre Delete et Truncate?

1. Les commandes Delete et Truncate suppriment les données des tables existantes dans une base de données sans endommager la structure de la table ou d'autres références à la table.

2. Cependant, la commande Supprimer ne peut être utilisée pour supprimer des lignes spécifiques que dans une table en utilisant une condition pertinente, ou pour supprimer toutes les lignes sans aucune condition, alors que la commande Truncate ne peut être utilisée que pour supprimer des données entières dans la table.

3. Delete est une commande DML, et peut annuler l'opération si nécessaire, mais Truncate est une commande DDL. Il s'agit donc d'une instruction de validation automatique et ne peut être annulée d'aucune façon. Il est donc important d'utiliser cette commande avec attention dans la gestion des bases de données.

4. L'opération de tronquage consomme moins de ressources système et de ressources de journal des transactions que l'opération de suppression. Par conséquent, Truncate est considéré comme plus rapide que Supprimer.

5. En outre, Supprimer ne libère pas l'espace utilisé par la table, alors que Truncate libère l'espace utilisé après l'exécution, donc Supprimer n'est pas efficace en cas de suppression de toutes les données d'une table de base de données.

6. Toutefois, Truncate n'est pas autorisé à utiliser lorsque la table est référencée par une contrainte de clé étrangère, et dans ce cas, la commande Supprimer peut être utilisée à la place de Truncate.

7. Enfin, ces deux commandes ont des avantages et des inconvénients à les appliquer dans les systèmes de gestion de base de données et l'utilisateur doit être conscient de l'utilisation appropriée de ces commandes pour obtenir de bons résultats.