logo

Rozdíl mezi DELETE a TRUNCATE

VYMAZAT je příkaz DML (Data Manipulation Language) a používá se, když zadáváme řádek (n-tice), který chceme odstranit nebo odstranit z tabulky nebo vztahu. Příkaz DELETE může obsahovat klauzuli WHERE. Pokud je s příkazem DELETE použita klauzule WHERE, odstraní nebo odstraní pouze ty řádky (n-tice), které splňují podmínku; jinak ve výchozím nastavení odstraní všechny n-tice (řádky) z tabulky. Pamatujte, že DELETE zaznamenává odstranění řádků.

Syntax:

DELETE FROM TableName



KDE podmínka;

co je $home linux

ZKRÁTIT je příkaz DDL (Data Definition Language) a používá se k odstranění všech řádků nebo n-tic z tabulky. Na rozdíl od příkazu DELETE příkaz TRUNCATE neobsahuje a klauzule WHERE . V příkazu TRUNCATE se protokol transakcí pro každou odstraněnou datovou stránku nezaznamenává. Na rozdíl od příkazu DELETE je příkaz TRUNCATE rychlý. Po použití příkazu TRUNCATE nelze data vrátit zpět.

Syntax:

TRUNCATE TABLE Název_tabulky;

Pojďme to pochopit na jednom jednoduchém příkladu, ve kterém vytvoříme jednu fiktivní tabulku a poté provedeme operaci odstranění.

Dotaz:

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ýstup

Tabulka zaměstnanců

Tabulka zaměstnanců

Příklad příkazu Delete:

Nyní musíte vytvořit dotaz k odstranění poslední položky s hodnotou 106 pro Emp_id.

Dotaz:

Delete from Employee where Emp_id = 106;>

Výstup

výstup

výstup

Příklad příkazu TRUNCATE

Chcete-li v tomto případě úplně odstranit všechny záznamy z hráčů u stolu, použijte příkaz zkrátit.

Dotaz:

TRUNCATE TABLE Employee;>

Rozdíly mezi DELETE a TRUNCATE

Vymazat Zkrátit
Příkaz DELETE se používá k odstranění určených řádků (jeden nebo více). Tento příkaz se používá k odstranění všech řádků z tabulky.
Je to a DML (Jazyk pro manipulaci s daty) příkaz. Zatímco je a DDL (Data Definition Language) příkaz.
V příkazu DELETE může být klauzule WHERE pro filtrování záznamů. I když v příkazu TRUNCATE nemusí být klauzule WHERE.
V příkazu DELETE je n-tice před odstraněním uzamčena. Během tohoto příkazu je datová stránka před odstraněním dat tabulky uzamčena.
Příkaz DELETE odebere řádky jeden po druhém a zaznamená záznam do protokolu transakcí pro každý odstraněný řádek. TRUNCATE TABLE odebere data uvolněním datových stránek používaných k uložení dat tabulky a zaznamená pouze uvolnění stránek do protokolu transakcí.
Příkaz DELETE je pomalejší než příkaz TRUNCATE. Zatímco příkaz TRUNCATE je rychlejší než příkaz DELETE.
Chcete-li použít Delete, potřebujete oprávnění DELETE v tabulce. K použití Truncate na stole potřebujeme alespoň ZMĚNIT povolení na stůl.
Identita méně sloupce si zachová identitu po použití příkazu DELETE v tabulce. Identita sloupce je resetována na počáteční hodnotu, pokud tabulka obsahuje sloupec identity.
Odstranění lze použít s indexovanými pohledy. Zkrácení nelze použít s indexovanými pohledy.
Tento příkaz může také aktivovat spuštění. Tento příkaz neaktivuje spouštění.
Příkaz DELETE zabírá více transakčního prostoru než Truncate. Příkaz Truncate zabírá méně transakčního prostoru než DELETE.

Operace mazání lze vrátit zpět.

TRUNCATE nelze vrátit zpět, protože způsobuje implicitní potvrzení.

Odstraněním se nezruší celá tabulka. Získá zámek na tabulce a začne mazat řádky.

TRUNCATE nejprve odstraní tabulku a poté ji znovu vytvoří, což je rychlejší než mazání jednotlivých řádků.

Závěr

V tomto článku, SQL vývojáři mohou řádky správně odebrat pomocí příkazů DELETE a TRUNCATE. Příkaz TRUNCATE je třeba používat opatrně, protože odstraní všechny záznamy tabulky. Začátečníci budou také těžit z tohoto výukového programu vysvětlení rozdílů mezi příkazy Delete a Truncate.

VYMAZAT:

  • Chcete ze stolu odstranit všechny zaměstnance, kteří za posledních šest měsíců nic nezakoupili.
  • Chcete odstranit zaměstnance z tabulky.

ZKRÁTIT:

  • Chcete obnovit obsah tabulky do původního stavu.
  • Nemusíte mít možnost obnovit data; jen to chcete úplně odstranit ze stolu.