Zatímco v předchozích lekcích jsme se soustředili na čtení a vkládání nových dat, v praxi se neobejdete bez schopnosti stávající informace měnit nebo ty nepotřebné trvale odstranit. Právě k tomu slouží příkazy UPDATE a DELETE.
Příkaz UPDATE: Změna existujících informací
Příkaz UPDATE použijete pokaždé, když uživatel změní své nastavení, heslo nebo například stav objednávky v e-shopu. Pomocí klíčového slova SET určíte, který sloupec a na jakou novou hodnotu se má přepsat.
Příklad v praxi:
Změna hesla pro uživatele s ID 5:
UPDATE uzivatele SET heslo = 'noveheslo456' WHERE id = 5;
Příkaz DELETE: Trvalé odstranění dat
Příkaz DELETE slouží k mazání řádků z tabulky. Je důležité mít na paměti, že smazání dat je v SQL standardně nevratný proces. Pokud řádek smažete, v databázi už neexistuje.
Příklad v praxi:
Smazání účtu podle e-mailové adresy:
DELETE FROM uzivatele WHERE email = 'stary-ucet@seznam.cz';
Pozor na podmínku WHERE
U obou těchto příkazů je naprosto kritické správně použít klauzuli WHERE. Pokud byste ji vynechali, příkaz se provede nad celou tabulkou bez rozdílu.
UPDATE uzivatele SET heslo = '123';– Nastaví stejné heslo všem uživatelům v databázi.DELETE FROM uzivatele;– Vymaže úplně všechny uživatele a zanechá tabulku prázdnou.
Bezpečnostní doporučení
Zkušení vývojáři často používají jednoduchý trik: než spustí ostrý DELETE nebo UPDATE, nejdříve si stejnou podmínku prověří pomocí příkazu SELECT. Tím si potvrdí, že se úprava dotkne skutečně jen těch řádků, které zamýšleli. V profesionálních aplikacích se také tyto hodnoty předávají skrze Prepared Statements, aby se zamezilo útokům SQL Injection.
Na co se zaměříme příště?
Nyní už umíte s daty v jedné tabulce provádět všechny základní operace (vytvořit, číst, upravit, smazat). Skutečná síla relačních databází se ale skrývá v propojování informací. V příští lekci se podíváme na Relace, vysvětlíme si, co jsou to primární a cizí klíče, a naučíme se propojovat více tabulek dohromady pomocí mocného nástroje JOIN.
