Maison > base de données > tutoriel mysql > mysql avancé (vingt et un) supprimant les données de la table

mysql avancé (vingt et un) supprimant les données de la table

黄舟
Libérer: 2017-02-11 10:45:25
original
1538 Les gens l'ont consulté

MySQL supprime les données de la table

Il existe deux méthodes pour supprimer des données dans MySQL, l'une est l'instruction DELETE et l'autre est l'instruction TRUNCATE TABLE. L'instruction DELETE peut sélectionner les enregistrements à supprimer via WHERE. L’utilisation de TRUNCATE TABLE supprimera tous les enregistrements de la table. Par conséquent, l’instruction DELETE est plus flexible.

Si vous souhaitez effacer tous les enregistrements du tableau, vous pouvez utiliser les deux méthodes suivantes :

DELETE FROM table1
       TRUNCATE TABLE table1
Copier après la connexion
Où se trouve TABLE dans le deuxième enregistrement facultatif.

Si vous souhaitez supprimer certains enregistrements de la table, vous ne pouvez utiliser que l'instruction DELETE.

Si DELETE n'ajoute pas de clause WHERE, alors c'est la même chose que TRUNCATE TABLE, mais ils ont une différence, c'est-à-dire que DELETE peut renvoyer le nombre d'enregistrements supprimés, tandis que TRUNCATE TABLE renvoie 0 .

S'il y a un champ d'auto-incrémentation dans une table, après avoir utilisé TRUNCATE TABLE et DELETE sans clause WHERE pour supprimer tous les enregistrements, le champ d'auto-incrémentation restaurera la valeur de départ à 1. Si vous ne voulez pas faire cela. Si c'est le cas, vous pouvez ajouter un WHERE permanent à l'instruction DELETE, tel que WHERE 1 ou WHERE true.

       DELETE FROM table1 WHERE ...;
Copier après la connexion

L'instruction ci-dessus analysera chaque enregistrement une fois exécutée. Mais cela ne se compare pas car la condition WHERE est toujours vraie. Bien que cela puisse maintenir la valeur maximale d'auto-incrémentation, puisqu'il analyse tous les enregistrements, son coût d'exécution est bien supérieur à DELETE sans clause WHERE.

La plus grande différence entre DELETE et TRUNCATE TABLE est que DELETE peut sélectionner les enregistrements à supprimer via l'instruction WHERE, mais la vitesse d'exécution n'est pas rapide.

      DELETE FROM table1 WHERE 1;
Copier après la connexion
Une fois la troncature supprimée, le journal MySQL ne sera pas enregistré et les données ne pourront pas être restaurées. L'effet de la suppression est un peu comme supprimer tous les enregistrements de la table mysql un par un jusqu'à ce que la suppression soit terminée, tandis que tronquer équivaut à conserver la structure de la table mysql et à recréer la table. Tous les états sont équivalents à un. nouveau tableau. Il peut également renvoyer le nombre d'enregistrements supprimés. TRUNCATE TABLE ne peut pas supprimer les enregistrements spécifiés et ne peut pas renvoyer les enregistrements supprimés. Mais il s'exécute très rapidement.


Contrairement aux instructions SQL standard, DELETE prend en charge les clauses ORDER BY et LIMIT Grâce à ces deux clauses, nous pouvons mieux contrôler les enregistrements à supprimer. Par exemple, lorsque nous souhaitons supprimer uniquement une partie des enregistrements filtrés par la clause WHERE, nous pouvons utiliser LIMIT. Si nous souhaitons supprimer les derniers enregistrements, nous pouvons utiliser ORDER BY et LIMIT ensemble. Supposons que nous souhaitions supprimer les 6 premiers enregistrements de la table des utilisateurs dont le nom est égal à "Mike". Vous pouvez utiliser l'instruction DELETE suivante :

Généralement, MySQL ne sait pas lesquels des 6 enregistrements supprimés sont. Pour plus de sécurité, nous pouvons utiliser ORDER BY pour trier les enregistrements.

Beaux textes et images
      DELETE FROM users WHERE name = 'Mike' LIMIT 6;
Copier après la connexion


      DELETE FROM users WHERE name = 'Mike' ORDER BY id DESC LIMIT 6;
Copier après la connexion

Ce qui précède est le contenu de MySQL Advanced (21) supprimant les données de la table, plus Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php.cn) !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal