La création et la manipulation des données constituent la base des bases de données et sont appelées respectivement DDL et DML. DDL est l’abréviation de Data Definition Language (langage de définition des données). Il permet de créer ou de modifier les structures de données dans les bases de données, mais ne peut pas être utilisé pour modifier les données présentes dans les tables. Par exemple, nous avons des commandes qui créent simplement une table avec les attributs de table spécifiés, mais qui n’ajoutent jamais de lignes dans la table. En revanche, un DML (Data Manipulation Language) est capable d’ajouter, de supprimer ou de modifier des données dans les tables. En règle générale, les commandes DDL traitent des structures des tableaux, tandis que les commandes DML traitent des données proprement dites. Pourquoi s’écarter du sujet « Différence entre Tronquer et Supprimer » ? Il y a des raisons pour lesquelles nous avons parlé du DML et du DDL. Vous le comprendrez dans la discussion à venir.
Qu’est-ce qu’une commande Truncate ?
L’objectif d’une commande Truncate est de supprimer l’intégralité d’une table. Ainsi, lorsque vous utilisez la commande Truncate, vous perdez toutes les données de la table et vous devez être prudent lors de son utilisation. Voyons comment l’utiliser.
La syntaxe de la commande Truncate :
TRUNCATE TABLE nom-de-la-table ;
Ici, vous devez spécifier le nom de la table qui doit être supprimée dans son ensemble. Cela permet de s’assurer qu’aucune table ne se trouve dans l’espace mémoire. Voici un exemple d’utilisation de Truncate.
Voici la table « employés » et regardez les lignes de données qu’elle contient.
Exécutons maintenant la commande suivante sur la table « employé ».
TRUNCATE TABLE employee ;
Voici le résultat de la syntaxe ci-dessus, qui ne contient aucune donnée.
Qu’est-ce qu’une commande Delete ?
L’objectif d’une commande Delete est de supprimer les lignes spécifiées de la table. Ici, la clause « Where » est utilisée pour spécifier les lignes qui doivent être supprimées. Si nous ne spécifions pas les lignes, la commande supprimera toutes les lignes du tableau. Il suffit de regarder la syntaxe de cette commande.
DELETE FROM employee ;
La syntaxe ci-dessus supprime toutes les lignes du tableau « employé ». Le tableau résultant ne contiendra donc aucune donnée.
DELETE FROM employee WHERE emp-id = 1011 ;
Cette instruction ne supprime qu’une seule ligne dont l’identifiant est 1011. Le tableau résultant sera donc le suivant.
Différences :
Truncate ->supprime toutes les données de la table ->L’espace de la table est maintenant libéré.
Delete ->Copier les données originales de la table dans l’espace Roll Back ->supprimer les données spécifiées/la table entière ->L’espace de la table est libéré mais l’espace Roll Back est rempli.
- Retour en arrière : Un retour en arrière est comme une commande Undo dans nos accessoires Microsoft. Elle permet d’annuler les modifications effectuées récemment, c’est-à-dire à partir du dernier point sauvegardé. Pour effectuer l’opération, les données doivent être copiées dans l’espace de retour en arrière avant d’être modifiées. Bien que ces retours en arrière nécessitent de la mémoire supplémentaire, ils sont extrêmement utiles pour revenir à l’original. En particulier, lorsque vous effectuez des modifications par erreur ! Venons-en maintenant à la troncature et à la suppression en ce qui concerne le retour en arrière. Comme nous l’avons vu plus haut, la commande Tronquer n’utilise jamais d’espace de retour en arrière et nous ne pouvons pas revenir aux données d’origine. En revanche, la commande Delete utilise un espace de retour en arrière et nous pouvons utiliser ‘Commit’ ou ‘RollBack’ pour accepter ou annuler les modifications respectivement.
- Déclencheurs : Pour ceux qui ont besoin d’une explication sur les déclencheurs, voici une petite note. Les déclencheurs sont un ensemble pré-spécifié d’opérations qui doivent être activées lorsque la table rencontre une condition particulière. Par exemple, nous pourrions déclencher la modification du montant du salaire lorsque l’expérience d’un employé au sein de l’entreprise est supérieure à un an. Ces déclencheurs peuvent également s’appliquer à d’autres tables. Par exemple, nous pourrions mettre à jour la table Finance dès qu’une augmentation de salaire est accordée à un employé.
Truncate est une commande DDL, le trigger n’est pas autorisé ici. Mais un Delete est une commande DML, les triggers sont autorisés ici.
Voilà donc les différences et regardons-les sous forme de tableau.
Connaître les différences entre deux entités permet d’élargir ses connaissances sur chacune d’entre elles ! Vous avez trouvé le bon chemin, c’est-à-dire la page web pour comprendre les différences, en particulier, entre les commandes truncate et delete. J’espère que vous êtes maintenant au courant de ces différences et faites-nous savoir si nous vous avons aidé à les comprendre. Vous pouvez également nous aider en nous indiquant ce qui a été laissé de côté !