Zkrátit a odstranit

Anonim

Vytváření a manipulace s daty jsou základem databází a nazýváme je jako DDL a DML. DDL je zkratka pro jazyk pro definici dat. Mohl buď vytvořit nebo upravit datové struktury v databázích a nemohl být použit k úpravě dat přítomných v tabulkách. Například máme příkazy, které pouze vytvoří tabulku s určenými atributy tabulky, ale nikdy do tabulky nepřidá žádné řádky. Ale jazyk DML, Data Manipulation Language, je schopen přidávat, odstraňovat nebo upravovat data v tabulkách. Obecně platí, že příkazy DDL se zabývají strukturami tabulky, zatímco příkazy DML se zabývají skutečnými daty. Nechte to být, proč se odchýlíme od tématu "Rozdíl mezi zkrácením a odstraněním"? Existují důvody, proč jsme hovořili o DML a DDL. Chápete to v předcházejících diskusích.

Co je příkaz Truncate?

Účelem příkazu Truncate je odstranit celou tabulku. Takže když použijete příkaz Truncate, ztratíte všechna data na stole a měli byste být opatrní při jeho používání. Dejte nám vědět, jak ji používat.

Syntaxe Truncate:

TRUNKÁNÍ TABULKA název tabulky;

Zde byste měli zadat název tabulky, která by měla být odstraněna jako celek. Tím je zajištěno, že v paměti bude umístěna libovolná tabulka. Zde je příklad použití funkce Truncate.

Níže je tabulka zaměstnanců a podívejte se na řádky dat v ní.

emp-id emp-name označení
1011 Zvedák Úředník
1012 Růžový Správce
1014 Nancy Finance

Nyní vydáme následující příkaz na tabulce zaměstnanců.

TRUNKÁNÍ TABULKA zaměstnanec;

Zde je výsledek výše uvedené syntaxe a v ní nejsou žádná data.

emp-id emp-name označení

Co je příkaz Odstranit?

Účelem příkazu Smazat je odstranit zadané řádky z tabulky. Zde se zde používá klauzule "Kde", která určuje řádky, které je třeba smazat. Pokud neurčíme řádky, příkaz by odstranil všechny řádky v tabulce. Stačí se podívat na jeho syntaxi.

DELETE FROM zaměstnanec;

Výše uvedená syntaxe odstraní všechny řádky z tabulky "zaměstnanec". Výsledná tabulka by tedy neobsahovala žádné údaje.

DELETE FROM zaměstnanec KDE emp-id = 1011;

Toto prohlášení pouze odstraní jeden řádek, jehož emp-id je 1011. Tak výsledná tabulka by byla stejná jako níže.

emp-id emp-name označení
1012 Růžový Správce
1014 Nancy Finance

Rozdíly:

  • Truncate je DDL; Smazat je DML: Diskutovali jsme výše, jak DDL a DML pracují v naší diskusi. Příkaz Truncate je DDL a pracuje na úrovni struktury dat. Ale příkaz Delete (Smazat) je příkaz DML a pracuje na datech tabulky. Dalšími příklady pro DDL jsou CREATE a ALTER. Podobně bychom mohli říci, že příkazy jako SELECT, UPDATE a INSERT jsou dokonalým příkladem pro DML.
  • Jak funkce Truncate a Delete funguje: Jakmile vydáme příkaz Truncate, prostě hledá zadanou tabulku. Pak zcela odstraní všechna data z paměti. Pracovní postup se však v případě výmazu trochu liší. Zde se původní data tabulky před provedením skutečné manipulace s daty zkopírují do prostoru nazvaného "Vrátit zpět". Poté se změny provádějí na skutečném datovém prostoru tabulky. Takže oba se liší způsobem, jakým fungují.

Zkrátit -> odstranit celé údaje z tabulky -> Tabulkový prostor je nyní uvolněn.

Odstranit -> Zkopírujte data původní tabulky do prostoru Roll Back -> vymažte zadané údaje nebo celou tabulku -> Prostor tabulky je uvolněn, ale prostor pro rolovací kolečko je vyplněn.

  • Vrátit zpět: Zpětná vazba je jako příkaz Zpět v našem příslušenství společnosti Microsoft. Používá se k zrušení změn, které jsme nedávno provedli, tj. Z posledního uloženého bodu. Chcete-li provést operaci, je třeba údaje před kopírováním zkopírovat do prostoru Roll Back. Ačkoli tyto zálohy vyžadují dodatečnou paměť, jsou velmi užitečné k návratu k originálu. Zvláště, když některé úpravy omylem! Pojďme k Truncate a Vymazat s ohledem na Roll zpět. Jak jsme uvedli výše, Truncate nikdy nepoužívá prostor pro návrat a nemohli jsme se vrátit k původním datům. Příkazem Smazat se však používá prostor pro vrácení a můžeme použít buď 'Commit' nebo 'RollBack' k přijetí nebo zrušení změn.
  • Spouštěče: Pro ty, kteří potřebují vysvětlení o triggerů, je tu malá poznámka. Trigery jsou předdefinovaná sada operací / operací, která by měla být aktivována, když se tabulka setká s určitým stavem. Mohli bychom například spustit změnu výše platu, pokud je zkušenost zaměstnance ve společnosti více než rok. Tyto spouštěče by mohly fungovat i na jiných stolech. Mohli bychom například aktualizovat finanční tabulku, jakmile bude pro zaměstnance proveden nárůst platu.

Truncate je příkaz DDL, spoušť zde není povolen. Ale příkaz Smazat je příkazem DML, jsou zde povoleny spouštěče.

  • Co je rychlejší? Jak jste odhadli, příkaz Truncate by byl rychlejší než příkaz Smazat. První může odstranit všechna data a není třeba zkontrolovat žádné odpovídající podmínky.Také původní data nejsou kopírována do prostoru pro obnovení a ušetří tak spoustu času. Tyto dva faktory způsobují zkrácení práce rychleji než odstranění.
  • Mohli bychom použít klauzuli WHERE? Klauzule "Kde" se používá k určení určitých podmínek pro porovnání a není nic společného s Truncate. Vzhledem k tomu, že Truncate nikdy nehledá žádné odpovídající podmínky a pouze odstraní všechny řádky, nemohli jsme zde použít klauzuli "Kde". Ale my jsme mohli vždy určit podmínku pomocí klauzule 'kde' v příkazu Delete.
  • Který zaujímá více prostoru? Zkrácená část nepoužije prostor pro obnovení a tato paměť se uloží. Vymazání však vyžaduje zálohu ve formě prostoru pro vrácení, a proto vyžaduje větší paměť než zkrácený.

Takže to jsou rozdíly a podívejme se v tabulkové podobě.

S.No Rozdíly v Zkrátit Odstranit
1. DDL nebo DML? Jedná se o DDL a pracuje na úrovni struktury dat. Dalšími příklady pro DDL jsou CREATE a ALTER. Jedná se o příkaz DML a pracuje na tabulkových datech. DML znamená jazyk pro manipulaci s daty. Příkazy jako SELECT, UPDATE a INSERT jsou dokonalým příkladem pro DML. DML znamená jazyk pro manipulaci s daty.

2. Jak to funguje? Jakmile vydáme příkaz Truncate, prostě hledá zadanou tabulku. Pak zcela odstraní všechna data z paměti. Zde se původní data tabulky před provedením skutečné manipulace s daty zkopírují do prostoru nazvaného "Vrátit zpět". Poté se změny provádějí na skutečném datovém prostoru tabulky.
3. Rollback Příkaz Truncate nikdy nepoužívá prostor pro vrácení a nemohli jsme se vrátit k původním datům. Prostor pro vrácení je exkluzivní a je obsazen při vydávání příkazů DML. Příkaz Odstranit používá prostor pro vrácení a my jsme mohli použít buď 'Commit' nebo 'RollBack' k přijetí nebo zrušení změn.

4. Spouští Truncate je příkaz DDL, spouštěče nejsou povoleny. Smazat je příkaz DML, zde jsou povoleny spouštěče.

5. Co je rychlejší? Mohlo by odstranit všechna data a není třeba zkontrolovat žádné odpovídající podmínky. Také původní data nejsou kopírována do prostoru pro obnovení a ušetří tak spoustu času. Tyto dva faktory způsobují zkrácení práce rychleji než odstranění.

Používá prostor pro vrácení a vždy musí být zachovány původní údaje. Jedná se o další zátěž a naopak trvá hodně času, než Truncate.
6. Mohli bychom použít klauzuli WHERE? Vzhledem k tomu, že Truncate nikdy nehledá žádné odpovídající podmínky a pouze odstraní všechny řádky, nemohli jsme zde použít klauzuli "Kde". Ale my jsme mohli vždy určit podmínku pomocí klauzule 'kde' v příkazu Delete.
7. Který zaujímá více prostoru? Zkrácená část nepoužije prostor pro obnovení a tato paměť se uloží. Potřebuje zálohu ve formě prostoru pro vrácení, a proto vyžaduje větší paměť než zkrácený.

Znát rozdíly mezi dvěma entitami rozšiřuje znalosti o obojích! Přistoupili jste na správnou cestu, tj. Na webovou stránku, abyste pochopili rozdíly, zejména mezi příkazy zkrácení a odstranění. Doufám, že jste nyní s jasnými rozdíly a dejte nám vědět, kdybychom vám to pomohli pochopit. Mohli byste nám také pomoci, abychom ukázali, co zbylo!