Smazat vs. Drop
Příkazy Delete i Drop patří k příkazům SQL (Structured Query Language) a používají se v případě odstranění dat z databáze. Delete je příkaz DML (Data Manipulation Language). Vymaže některá nebo všechna data z tabulky podle podmínky, kterou uživatel zadal. Příkaz Delete odstraní pouze datové záznamy v tabulce, ale struktura tabulky je v databázi stejná. Příkaz Drop je příkaz DDL (Data Definition Language) a funguje jiným způsobem než příkaz Delete. Nejedná se o podmíněný příkaz, takže odstraní celá data z tabulky a také trvale odstraní strukturu tabulky a všechny odkazy na tuto tabulku z databáze.
Smazat výpis
Jak je uvedeno výše, příkaz Delete odstraňuje data z tabulky na základě poskytnuté podmínky a klauzule Where se používá s Delete k určení této požadované podmínky. Pokud klauzule Where není uvedena s Delete, všechna data tabulky se z tabulky odstraní. V operaci Odstranit však stávající struktura tabulky zůstává stejná. Uživatel tedy nemusí definovat strukturu tabulky, pokud chce tabulku znovu použít. Protože Delete je příkaz DML, nepotvrdí se automaticky po provedení. Takže to lze vrátit zpět a vrátit zpět předchozí operaci. V opačném případě by měl být vyvolán příkaz Commit, aby byly změny trvalé. Při provádění příkazu Delete zaznamená záznam do protokolu transakcí pro každé odstranění řádku. To má vliv na zpomalení provozu. Stejně tak neuvolňuje prostor použitý po provedení.
Následuje syntaxe příkazu Delete.
SMAZAT Z
nebo
SMAZAT ODKUD
Drop Statement
Příkaz Drop odstraní nejen všechny záznamy tabulky z databáze bez jakýchkoli podmínek, ale také trvale odstraní strukturu tabulky, integritní omezení, indexy a přístupová práva příslušné tabulky z databáze. Takže všechny vztahy pro jiné tabulky již také neexistují a informace o tabulce jsou odstraněny z datového slovníku. Pokud tedy chce uživatel znovu použít tabulku, musí znovu definovat strukturu tabulky a všechny ostatní odkazy na tabulku. Drop je příkaz DDL a po provedení příkazu jej nelze znovu vrátit zpět, protože příkaz Drop používá automatický závazek. Proto by měl být uživatel při používání tohoto příkazu velmi opatrný. Příkaz Drop nelze použít na systémové tabulky a také jej nelze použít pro tabulky, které mají omezení cizího klíče.
Příkaz Drop lze použít nejen pro SQL tabulky, ale také pro databáze, pohledy a sloupce tabulek a všechna data uložená v těchto objektech jsou navždy ztracena spolu s objekty.
Následuje typická syntaxe příkazu Drop.
DROP TABLE
Jaký je rozdíl mezi Delete a Drop?
1. Příkazy Delete a Drop odstraní data tabulky z databáze.
2. Příkaz Delete však provádí podmíněné mazání, zatímco příkaz Drop maže celé záznamy v tabulce.
3. Příkaz Delete také odstraní pouze řádky v tabulce a zachová strukturu tabulky jako stejnou, zatímco příkaz Drop odstraní všechna data v tabulce a strukturu tabulky a také odstraní všechny ostatní odkazy z databáze.
4. Delete je příkaz DML, zatímco Drop je příkaz DDL. Takže operaci Delete lze vrátit zpět a není automaticky potvrzena, zatímco operaci Drop nelze vrátit zpět žádným způsobem, protože se jedná o automaticky potvrzený příkaz.
5. Příkaz Drop nelze použít v tabulkách, na které odkazují omezení cizího klíče, zatímco místo toho lze použít příkaz Delete.
6. Příkaz Drop by měl být používán opatrně s dobrým porozuměním ve srovnání s příkazem Delete v aplikacích SQL.