DELETE est une commande DML qui supprime des lignes individuellement, prend en charge les clauses WHERE, enregistre chaque suppression, autorise la restauration et déclenche des déclencheurs?; 2. TRUNCATE est une commande de type DDL qui désalloue les pages, supprime toutes les données sans conditions, enregistre au minimum les opérations, réinitialise les graines d'identité, ne déclenche pas de déclencheurs et nécessite des privilèges plus élevés?; 3. TRUNCATE est plus rapide pour les suppressions de tables complètes mais manque de flexibilité en matière de filtrage conditionnel et d'intégrité référentielle, ce qui rend DELETE meilleur pour les suppressions sélectives et TRUNCATE idéal pour un nettoyage rapide et complet de la table.
DELETE et TRUNCATE sont tous deux utilisés pour supprimer des données d'une table dans SQL, mais ils fonctionnent différemment et présentent des distinctions importantes en termes de comportement, de performances et d'utilisation.
Comment fonctionne SUPPRIMER
DELETE est une commande DML (Data Manipulation Language) qui supprime les lignes une par une en fonction d'une condition. Si aucune clause WHERE n'est spécifiée, toutes les lignes sont supprimées mais elles sont toujours traitées individuellement.
- Vous pouvez utiliser une clause WHERE pour filtrer les lignes à supprimer.
- Chaque ligne supprimée est enregistrée dans le journal des transactions, permettant la restauration.
- Les déclencheurs peuvent être déclenchés lors d’une opération DELETE.
- Il conserve la structure de la table et réinitialise les germes d'identité uniquement s'ils sont explicitement réinitialisés.
- Plus lent que TRUNCATE pour les grands ensembles de données en raison du traitement ligne par ligne.
Comment fonctionne TRUNCATE
TRUNCATE est une commande DCL (Data Control Language) qui supprime toutes les lignes d'une table en désallouant les pages de données, et non les lignes individuelles.
- Il supprime toujours toutes les données – aucune clause WHERE n'est autorisée.
- Journalisation minimale?: seules les désallocations de pages sont enregistrées, ce qui le rend plus rapide.
- Réinitialise les compteurs d’identité à la valeur initiale.
- Impossible de déclencher des déclencheurs car il ne traite pas les lignes individuellement.
- Nécessite des autorisations plus élevées (par exemple, ALTER) et ne peut pas être utilisé sur des tables avec des références de clé étrangère.
Résumé des principales différences
Comprendre quand utiliser chacun est important pour la performance et l’intégrité.
- Journalisation?: DELETE enregistre les suppressions de lignes?; TRUNCATE enregistre les désallocations de pages.
- Vitesse?: TRUNCATE est plus rapide pour effacer des tables entières.
- Rollback?: les deux peuvent être annulés en cas de transaction.
- Conditions?:?DELETE prend en charge Où?; TRUNCATE ne le fait pas.
- Déclencheurs?: DELETE respecte les déclencheurs?; TRUNCATE ne les active pas.
- Colonnes d'identité?: TRUNCATE réinitialise les valeurs d'identité?; DELETE ne le fait pas.
Choisissez SUPPRIMER lorsque vous avez besoin d’une suppression conditionnelle ou d’une prise en charge du déclencheur. Utilisez TRUNCATE pour vider rapidement une table entière et réinitialiser les valeurs d'incrémentation automatique. Le choix affecte les performances, la journalisation et l’intégrité référentielle.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

USECOMmentOnColumnoralterTablewithCommentToDocumentTables etColumnSinsQL; SyntaxVariesByDBMS - PostgreSQLandoracleUseCommenton, MySQLUSESCommentIncreate / Alterstatements, andcomementsCanBeviewEdViaSystemtslienformations_schema, ButsqliTelackSSUPPort.

La fonction SoundEx convertit le texte en un code à quatre caractères représentant la prononciation, ajoute trois chiffres à la première lettre, ignore les voyelles et les lettres spécifiques, et cartographie des consonnes avec des prononciations similaires au même nombre, réalisant la recherche basée sur la prononciation. Par exemple, Smith et Smythe génèrent tous deux S530, et les noms avec des prononciations similaires peuvent être trouvés via WhereSoundEx (Last_name) = SoundEx ('Smith'). Combiné avec la fonction de différence, il peut renvoyer un score de similitude de 0 à 4, filtrez les résultats de la projection de la prononciation, ce qui convient au traitement des différences d'orthographe, mais a un effet limité sur les noms non anglophones, et l'optimisation des performances doit être accordée à l'attention.

TogetTheLasTinsertEDID, usedatabase-spécifiquefunctions: mysqluseslast_insert_id (), postgresqluserningcause, sqlserverusesscope_identity () oroutput, etqliteuseslast_insert_rowid (); toujoursCallRighfteRinsserttoensureAcuracy.

ToFindorphaneDrecords, usealeftjoinornotexiststoidentifyChildRecordswithoutmatchingPaRentRecords.forexample, selecto.fromordersoleftjoinoistomerscono.customer_id = c.Customer_idwherec.Customer_idisnullredSordersLinkEdtonon-ExistCustomerSers.AltervatIverv.

Lorsque vous utilisez CreateTable, ajoutez un mot-clé unique ou utilisez AlterTableAddConstraint pour ajouter des contraintes aux tables existantes pour vous assurer que les valeurs de la colonne sont uniques et prennent en charge les colonnes uniques ou plusieurs colonnes. Avant d'ajouter, vous devez vous assurer que les données ne sont pas dupliquées. Vous pouvez le supprimer via DropConstraint, faites attention aux différences de syntaxe entre les différentes bases de données et les valeurs nuls.

RenamingadatabasedependsontheDBMS:inSQLServer,useALTERDATABASEwithMODIFYNAMEaftersettingsingle-usermode;inMySQL,nodirectrenameisavailable,socreateanewdatabase,copydataviamysqldumporRENAMETABLE,thendroptheoldone;inPostgreSQL,useALTERDATABASE...RENAMET

Utilisez la fonction Last_day () (MySQL, Oracle) pour obtenir directement le dernier jour du mois où la date spécifiée est, comme Last_day ('2023-10-15') pour retourner 2023-10-31; 2. SqlServer utilise la fonction eomonth () pour atteindre la même fonction; 3. PostgreSQL calcule la fin du mois via date_trunc et intervalle; 4. Sqlite utilise la fonction de date pour combiner ?startofmonth?, ?1 mois? et ?-1day? pour obtenir les résultats.

Themin () fonctionnel de réalité est utile à la valeur de la coluse.
