logo

Rozdiel medzi DELETE a TRUNCATE

VYMAZAŤ je príkaz DML (Data Manipulation Language) a používa sa, keď zadávame riadok (n-ticu), ktorý chceme odstrániť alebo vymazať z tabuľky alebo vzťahu. Príkaz DELETE môže obsahovať klauzulu WHERE. Ak sa klauzula WHERE použije s príkazom DELETE, potom odstráni alebo vymaže iba tie riadky (dvojice), ktoré spĺňajú podmienku; v opačnom prípade štandardne odstráni všetky n-tice (riadky) z tabuľky. Pamätajte, že DELETE zaznamenáva vymazania riadkov.

Syntax:

DELETE FROM TableName



KDE podmienka;

prázdny zoznam java

TRUNCATE (skrátiť). je príkaz DDL (Data Definition Language) a používa sa na odstránenie všetkých riadkov alebo n-tic z tabuľky. Na rozdiel od príkazu DELETE príkaz TRUNCATE neobsahuje a klauzula WHERE . V príkaze TRUNCATE sa protokol transakcií pre každú vymazanú stránku s údajmi nezaznamenáva. Na rozdiel od príkazu DELETE je príkaz TRUNCATE rýchly. Po použití príkazu TRUNCATE nemôžeme vrátiť údaje späť.

Syntax:

TRUNCATE TABLE TableName;

Poďme to pochopiť pomocou jednoduchého príkladu, v ktorom vytvoríme jednu fiktívnu tabuľku a potom vykonáme operáciu odstránenia.

Dopyt:

CREATE table Employee ( Emp_id int,  name VARCHAR(20),  country VARCHAR(20),  Salary INT); --insert the data in the Employee Table INSERT INTO Employee (Emp_id, name, country, Salary) values (101, 'Mohit', 'India', 60000),  (103, 'Anish', 'England', 70000),  (104, 'Shubham', 'France', 100000),  (102, 'Danish', 'Sweden', 40000),  (105, 'Vivek', 'Wales', 50000),  (106, 'Rohan', 'Scotland', 30000);  Select * from Employee ;>

Výkon

Tabuľka zamestnancov

Tabuľka zamestnancov

Príklad príkazu Delete:

Teraz musíte vytvoriť dotaz na odstránenie poslednej položky s hodnotou 106 pre Emp_id.

Dopyt:

Delete from Employee where Emp_id = 106;>

Výkon

výkon

výkon

Príklad príkazu TRUNCATE

Ak chcete v tomto prípade úplne odstrániť všetky záznamy zo stolových prehrávačov, použite príkaz skrátiť.

Dopyt:

TRUNCATE TABLE Employee;>

Rozdiely medzi DELETE a TRUNCATE

Odstrániť Skrátiť
Príkaz DELETE sa používa na odstránenie určených riadkov (jeden alebo viac). Tento príkaz sa používa na odstránenie všetkých riadkov z tabuľky.
Je to a DML (Jazyk na manipuláciu s údajmi) príkaz. Zatiaľ čo je a DDL (jazyk definície údajov) príkaz.
V príkaze DELETE môže byť klauzula WHERE na filtrovanie záznamov. Aj keď v príkaze TRUNCATE nemusí byť klauzula WHERE.
V príkaze DELETE je n-tica pred odstránením uzamknutá. Počas tohto príkazu je údajová stránka pred odstránením údajov tabuľky uzamknutá.
Príkaz DELETE odstraňuje riadky po jednom a zaznamenáva záznam do denníka transakcií pre každý odstránený riadok. TRUNCATE TABLE odstráni údaje uvoľnením údajových stránok používaných na uloženie údajov tabuľky a do protokolu transakcií zaznamená iba uvoľnenia stránok.
Príkaz DELETE je pomalší ako príkaz TRUNCATE. Zatiaľ čo príkaz TRUNCATE je rýchlejší ako príkaz DELETE.
Ak chcete použiť funkciu Odstrániť, potrebujete povolenie DELETE v tabuľke. Na použitie Truncate na stole potrebujeme aspoň ALTER povolenie na stôl.
Identita menšieho počtu stĺpcov si zachová identitu aj po použití príkazu DELETE v tabuľke. Identita stĺpca sa nastaví na počiatočnú hodnotu, ak tabuľka obsahuje stĺpec identity.
Odstránenie možno použiť s indexovanými zobrazeniami. Skrátiť nemožno použiť s indexovanými zobrazeniami.
Tento príkaz môže tiež aktivovať spúšťanie. Tento príkaz neaktivuje spúšťač.
Príkaz DELETE zaberá viac transakčných priestorov ako Truncate. Príkaz Truncate zaberá menej transakčných priestorov ako DELETE.

Operácie vymazania je možné vrátiť späť.

TRUNCATE nie je možné vrátiť späť, pretože spôsobuje implicitné potvrdenie.

Delete nezahodí celú tabuľku. Zamkne tabuľku a začne odstraňovať riadky.

TRUNCATE najprv zruší tabuľku a potom ju znova vytvorí, čo je rýchlejšie ako odstraňovanie jednotlivých riadkov.

Záver

V tomto článku SQL vývojári môžu správne odstrániť riadky správnym použitím príkazov DELETE a TRUNCATE. Príkaz TRUNCATE sa musí používať opatrne, pretože vymaže všetky záznamy tabuľky. Začiatočníci budú tiež ťažiť z vysvetlenia rozdielov medzi príkazmi Delete a Truncate v tomto návode.

VYMAZAŤ:

  • Chcete z tabuľky odstrániť všetkých zamestnancov, ktorí si za posledných šesť mesiacov nič nekúpili.
  • Chcete odstrániť zamestnanca z tabuľky.

SKRÁNIŤ:

  • Chcete obnoviť obsah tabuľky do pôvodného stavu.
  • Nemusíte mať možnosť obnoviť údaje; len ho chcete úplne odstrániť zo stola.