Rozdíl mezi smazáním a zkrácením

Smazat vs zkrátit

Oba příkazy SQL (Structure Query Language), Delete a Truncate se používají k odstranění dat uložených v tabulkách v databázi. Odstranit je příkaz DML (Data Manipulation Language) a odebere některé nebo všechny řádky tabulky. „Klauzule Where“ se používá k určení řádků, které mají být odstraněny, a pokud klauzule Where není použita s příkazem Delete, odebere všechna data v tabulce. Truncate je příkaz DDL (Data Definition Language) a odebere z tabulky všechna data. Oba tyto příkazy nezničí strukturu tabulky a odkazy na tabulku a pouze data jsou podle potřeby odstraněna.

Smazat prohlášení

Příkaz Delete umožňuje uživateli odstranit data z existující tabulky v databázi na základě zadané podmínky a pro určení této podmínky se použije klauzule 'Where'. Příkaz Delete je označován jako protokolované provedení, protože odstraní najednou pouze jeden řádek a v protokolu transakcí ponechá záznam pro každé vymazání každého řádku. To způsobí, že operace bude pomalejší. Odstranit je příkaz DML, a proto není při provádění příkazu automaticky potvrzen. Proto lze operaci Smazat v případě potřeby vrátit zpět pro přístup k datům. Po provedení příkazu Odstranit by měl být potvrzen nebo vrácen zpět, aby se změny trvale uložily. Příkaz Delete neodstraní strukturu tabulky z databáze. Rovněž nepřiděluje paměťový prostor používaný tabulkou.

Typická syntaxe příkazu Delete je uvedena níže.

ODSTRANIT OD

nebo

ODSTRANTE OD KDE

Zkrácené prohlášení

Příkaz Truncate odebere všechna data z existující tabulky v databázi, ale zachovává stejnou strukturu tabulky, také omezení integrity, přístupová oprávnění a vztahy k jiným tabulkám. Není tedy nutné znovu definovat tabulku a pokud chce uživatel tabulku znovu použít, lze použít původní strukturu tabulky. Truncate odstraní všechna data tím, že oddělí datové stránky používané k uchování dat a pouze tato deallokace stránek jsou uložena v protokolu transakcí. Příkaz zkrácení proto používá pro provoz pouze méně prostředků systémových a transakčních protokolů, takže je rychlejší než jiné související příkazy. Truncate je příkaz DDL, takže používá automatické závazky před a po provedení příkazu. Zkrácením tedy nelze data v žádném případě vrátit zpět. Uvolňuje paměťový prostor, který tabulka používá po provedení. Příkaz Zkrátit však nelze použít na tabulky, na které se vztahují omezení cizího klíče.

Následuje obvyklá syntaxe příkazu Truncate.

TRUNCATE TABLE

Jaký je rozdíl mezi smazáním a zkrácením?

1. Příkazy Delete a Truncate odstraňují data z existujících tabulek v databázi bez poškození struktury tabulky nebo jiných odkazů na tabulku.

2. Příkaz Delete lze však použít k odstranění konkrétních řádků pouze v tabulce pomocí příslušné podmínky nebo k odstranění všech řádků bez jakékoli podmínky, zatímco příkaz Truncate lze použít pouze k odstranění celých dat v tabulce..

3. Odstranit je příkaz DML a v případě potřeby může operaci vrátit zpět, ale příkaz Truncate je příkazem DDL, jedná se tedy o příkaz automatického potvrzení a nelze jej v žádném případě vrátit zpět. Proto je důležité tento příkaz používat při správě databáze opatrně.

4. Operace zkrácení spotřebovává méně systémových prostředků a prostředků protokolu transakcí než operace smazání, proto je zkrácení považováno za rychlejší než smazání.

5. Odstranit také nepřiděluje místo použité v tabulce, zatímco zkrácení uvolní místo použité po spuštění, takže Odstranění není účinné v případě odstranění celých dat z databázové tabulky..

6. Zkrácení však není dovoleno použít, když je na tabulku odkazováno omezení cizího klíče, a v takovém případě lze místo zkrácení použít příkaz Odstranit..

7. Konečně oba tyto příkazy mají výhody a také nevýhody při jejich použití v systémech správy databází a uživatel by si měl být vědom toho, že tyto příkazy vhodně používá k dosažení dobrých výsledků..