Tronquer vs. Supprimer SQL

Tronquer vs. Supprimer SQL
Il existe deux méthodes principales pour supprimer les données dans une base de données SQL: tronquer et supprimer. Bien que le processus puisse sembler étroitement lié, la compréhension de la différence entre ces commandes peut être bénéfique pour déterminer comment gérer les données.

Décomposons la différence entre les commandes tronquées et supprimées dans SQL.

Commande SQL tronquée

La commande tronquée dans SQL est connue comme un langage de définition de données. Les commandes tronquées suppriment les données d'une table tout en préservant la structure du tableau. Contrairement à la commande de suppression, vous ne pouvez pas filtrer pour des enregistrements spécifiques en utilisant la clause WHERE.

De même, nous ne pouvons pas effectuer Rollback après avoir exécuté les commandes tronquées, car aucun journal n'est conservé pour cette commande.

Remarque: Certains moteurs de base de données prennent en charge le retour en arrière pour les commandes tronquées, mais ce n'est pas universel.

Si une table fait partie d'une vue indexée ou référencée par une clé étrangère, la commande tronquée ne fonctionnera pas sur ce tableau.

La syntaxe de commande est comme indiqué:

TRUNCATE TABLE TABLE_NAME;

La commande truncicate est plus rapide que de supprimer car elle ne fait pas de numérisation pour les enregistrements avant la suppression. Il garantit également que l'ensemble du tableau est verrouillé avant de supprimer les données, réduisant ainsi l'espace de transaction.

Selon le moteur de la base de données, vous avez besoin d'autorisations explicites pour effectuer une opération tronquée sur un tableau. Par exemple, dans SQL Server, vous avez besoin de l'autorisation de la table alter. MySQL nécessite une autorisation de baisse, PostgreSQL nécessite une autorisation tronquée et Oracle nécessite la suppression de toute autorisation de table.

Commande SQL Delete

La commande de suppression est une commande de manipulation de données. Il vous permet de supprimer les enregistrements d'une table de base de données et renvoie le nombre d'enregistrements supprimés. Les commandes de suppression suppriment les lignes d'une table et non la table entière de la base de données.

Contrairement à la commande truncate, la commande de suppression vous permet de filtrer les enregistrements cibles à l'aide de la clause WHERE.

La syntaxe de commande est illustrée ci-dessous:

Supprimer de table_name;

Pour filtrer pour des enregistrements spécifiques, vous pouvez utiliser la syntaxe comme indiqué ci-dessous:

Supprimer de table_name où condition;

Remarque: Si vous ne spécifiez pas les colonnes cibles, la commande supprimera tous les enregistrements du tableau donné.

Contrairement à la commande truncicate, qui verrouille l'ensemble du tableau, la commande de suppression verrouille des lignes individuelles menant à un espace de transaction plus élevé, en particulier sur une grande table.

Pour exécuter une commande de suppression sur une table, vous avez besoin de l'autorisation de suppression.

Sommaire

Le tableau suivant résume les différences entre les commandes de suppression SQL et tronquée.

SQL tronqué SQL Supprimer
Taper Langue de définition des données Langage de manipulation des données
Type de verrouillage Tableau Ligne
Retour en arriere Certains moteurs de base de données Oui
Journaux de transaction Table entière Par rangée
Utilisation de l'espace de transaction Moins Plus haut
Soutien de la prise en charge Non Oui
Vitesse Très vite Lent
Type de retrait Toutes les lignes Les lignes de toutes ou spécifiques (comme spécifié)
Fonctionne avec une vue indexée? Non Oui
Réinitialisation de la colonne d'identité Certains moteurs de base de données Non
Renvoie les enregistrements supprimés? Non Oui

Dans la plupart des cas, le choix du meilleur type d'opération dépendra de vos besoins spécifiques. Cependant, considérez les points suivants:

  1. Pour des lignes spécifiques, optez pour supprimer.
  2. Truncate est plus rapide que supprimer; Par conséquent, utilisez Truncate si vous souhaitez supprimer toutes les lignes dans une table.
  3. Si vous ne vous souciez pas de la structure de la table, utilisez d'autres commandes, telles que Drop.

Conclusion

Cet article traite de deux commandes fondamentales pour supprimer les données dans une base de données SQL. En utilisant ce guide, vous pouvez explicitement spécifier ce que fait la commande truncate ou la commande de suppression dans une base de données relationnelle. Nous espérons que vous avez trouvé cet article utile. Consultez les autres articles sur les conseils pour plus de conseils et de tutoriels.