Supprimer vs tronquer
Les deux commandes SQL (Structure Query Language), Delete et Truncate sont utilisées pour se débarrasser des 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 qui doivent être supprimées, et si la clause Where n'est pas utilisée avec l'instruction Delete, elle supprime toutes les données de la table. 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.
Supprimer la déclaration
L'instruction 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 de suppression est appelée exécution journalisée, 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 et 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. De plus, il ne désalloue pas l'espace mémoire utilisé par la table.
La syntaxe typique de la commande Supprimer est indiquée ci-dessous.
SUPPRIMER DE
ou
SUPPRIMER DE O
Instruction Tronquer
L'instruction Truncate supprime toutes les données d'une table existante dans une base de données, mais elle préserve la même structure de table, ainsi que les contraintes d'intégrité, les privilèges d'accès et les relations avec les autres tables. Il n'est donc pas nécessaire de redéfinir 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 que moins de ressources système et de journal des transactions pour son fonctionnement, elle est donc plus rapide que les autres commandes associées. Truncate est une commande DDL, elle utilise donc les engagements automatiques avant et après l'exécution de l'instruction. Par conséquent, truncate ne peut en aucun cas restaurer les données. Il libère 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 courante de l'instruction Truncate.
TABLE DU TRONCAT