Při práci s databázemi je často nutné odstranit jeden nebo více řádků dat. Pro implementaci této akce existuje zvláštní operátor SQL - Delete.
Jednou z často používaných operací při práci s databázemi je operátor odstranění určitého počtu řádků. . Chcete-li odstranit další záznamy z tabulky, stačí použít speciální funkci SQL-D elete .
Syntaxe tohoto příkazu je stejná jako vkládání a úprava záznamů. Klíčové slovo DELETE je následováno konstruktem označující tabulku, ve které bude odstranění provedeno - FROM a název tabulky. Potom přichází volitelná část struktury syntaxe operátora, která může obsahovat indikace, které jednoznačně definují jeden nebo více řádků.
DELETE FROM <název tabulky> [WHERE <predikát>].
Možná věta začíná slovem "WHERE", po níž následuje sada predikátů. Je možné uvést jak explicitní hodnotu určitého pole, označující jej jako jednotlivá nebo vyjmenovaná, nebo určitý rozsah nebo podmínku. V predikátu můžete také použít vnořené podmínky, například smazat pouze ty záznamy, které jsou obsaženy nebo chybějí v jiné tabulce.
Chcete-li odstranit položku, musíte použít volitelnou část struktury funkce Smazat. MS SQL podporuje pouze jednu datovou specifikaci pomocí klíčového slova WHERE. Parametry hledání vyhledávacího řetězce by tedy měly být zadány pouze po něm.
Pokud je nutné tabulku vymazat, není nutné použít další část struktury, stačí jednoduše zadat název tabulky ve výše uvedené syntaxi SQL Delete. Příklad odstranění všech záznamů je následující:
DELETE FROM "tabulka_1".
Tento dotaz vyčistí tabulku s názvem "table_1". Stojí za zmínku, že v tomto případě se nedojde k výmazu samotné tabulky - pro to je nutné použít jiné prostředky jazyka SQL.
Pokud potřebujete smazat pouze záznamy, které splňují určitý požadavek, musíte přidat příkaz prohlášení. Například v následujícím příkladu odstraní funkce SQL Delete všechny řádky v tabulce Personnel, které mají v poli Name hodnotu Ivan:
DELETE FROM "Zaměstnanci" WHERE "Jméno" = "Ivan".
Je-li to nutné, můžete v jednom dotazu zadat více podmínek a spojit je s logickými "AND" a "OR". V následujícím příkladu budou všechny záznamy, ve kterých bude vymazán název zaměstnance "Ivan" nebo "Oleg":
DELETE FROM "Personnel" KDE "Jméno" = "Ivan" NEBO "Jméno" = "Oleg".
Při mazání však není vždy nutné odstranit všechny řádky, které splňují daný stav. Chcete-li dosáhnout vymazání dat pouze určitého počtu řádků, musíte přidat klíč LIMIT do struktury funkce Smazat SQL a potom zadejte explicitní hodnotu řádků, které chcete odstranit.
V následujícím příkladu budou z tabulky Personál odstraněny pouze dva záznamy zaměstnanců s názvem Ivan:
DELETE FROM "Personnel" KDE "Jméno" = "Ivan" LIMIT 2.
Je třeba poznamenat, že při provádění operace mazání řádků byste měli věnovat pozornost správnosti psaní dotazů. V případě chyby v syntaxi nebo stavu může dojít k nadměrnému vymazání řádků, což bude automaticky téměř nemožné vrátit se k tabulce.