Maison  >  Article  >  base de données  >  Quelle est la différence entre les commandes SQL supprimer et tronquer ?

Quelle est la différence entre les commandes SQL supprimer et tronquer ?

青灯夜游
青灯夜游original
2019-02-20 10:47:064255parcourir

Les commandes delete et truncate peuvent être utilisées pour supprimer des données (enregistrements) dans SQL, alors quelle est la différence entre elles ? L'article suivant vous présentera la différence entre les commandes de suppression et de troncature. J'espère qu'il vous sera utile.

Quelle est la différence entre les commandes SQL supprimer et tronquer ?

Quelle est la commande de suppression ? La commande

delete permet de supprimer des enregistrements d'une table de la base de données. [Recommandation du didacticiel vidéo : Tutoriel MySQL]

Exemple : Ce qui suit est une table d'étudiant, contenant 3 champs : student_id, nom, notes

Quelle est la différence entre les commandes SQL supprimer et tronquer ?

Vous pouvez utiliser la commande SQL delete pour supprimer tous les enregistrements de la table des étudiants :

delete from student;

Vous pouvez également supprimer des enregistrements spécifiques dans la table des étudiants :

delete from student where student_id =2;

La commande SQL ci-dessus supprimera l'enregistrement avec student_id 2. Après avoir exécuté cette instruction, la table ne contiendra que deux enregistrements : les enregistrements avec student_id 1 et 3.

Qu'est-ce que la commande tronquer ?

La commande truncate permet de supprimer tous les enregistrements de la table. Il supprime également la structure des tables de la base de données. Ainsi, lorsque la commande truncate est exécutée sur une table spécifique, elle initialise également la clé primaire.

La commande SQL suivante supprimera tous les enregistrements de la table des étudiants. De plus, il supprime la structure des tables de la base de données.

truncate table student;

Quelle est la différence entre les commandes supprimer et tronquer ?

1. Le type de commande

delete est une commande de langage de manipulation de données (DML) et truncate est une commande de langage de définition de données (DDL) ; .

2. Fonction

La commande delete supprime un, plusieurs ou tous les enregistrements de la table selon l'instruction SQL spécifiée tandis que la commande truncate supprime tous les enregistrements de la table ; base de données et structure de table.

3. La clause Where

la commande delete prend en charge la clause WHERE, vous pouvez utiliser la clause Where avec DELETE pour filtrer et supprimer des enregistrements spécifiques et tronquer la clause WHERE de la commande ; pas pris en charge.

4. Verrouillage

La commande delete utilise le verrouillage au niveau de la ligne, et chaque ligne de la table est verrouillée pour la suppression ; verrouiller la table entière pour supprimer tous les enregistrements.

5. Vue index

La commande delete peut être utilisée avec la vue index, cependant, la commande truncate ne peut pas être utilisée avec la vue index.

6. Vitesse d'exécution

Étant donné que la commande de suppression conserve les journaux, la vitesse est très lente. Cependant, étant donné que la commande truncate conserve un minimum d'enregistrements de journalisation dans le journal des transactions, elle s'exécute plus rapidement.

7. Structure de la table

La commande delete n'affectera pas la structure de la table, tandis que la commande truncate supprimera la structure de la table de la base de données.

8. Espace de transaction

La commande delete utilise plus d'espace de transaction que la commande truncate.

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn