Problém:
Chcete odstranit řádek / řádky z tabulky.
Příklad 1:
V exam
tabulka, jsou tam jména studentů a výsledky zkoušky.
name | výsledek |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Chcete odstranit řádek pro Ellen Thornton.
Řešení 1:
DELETE FROM exam WHERE name = 'Ellen Thornton';
Tabulka exam
nyní vypadá takto:
name | výsledek |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Diskuse:
Použijte DELETE FROM
s názvem tabulky, ze které chcete odstranit řádek. V WHERE
, napište podmínku určující řádek. Pokud máte na mysli konkrétní řádek, je nejlepší napsat podmínku pomocí sloupce obsahujícího jedinečné hodnoty. Zde je jedinečný sloupec name
.
Pokud existuje mnoho řádků, jejichž název se rovná 'Ellen Thornton
“, všechny budou odstraněny. Pokud takový název neexistuje, nebudou odstraněny žádné řádky.
Příklad 2:
V exam
v tabulce jsou jména studentů a výsledky zkoušky, stejně jako v předchozím příkladu.
name | výsledek |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Chcete odstranit všechny řádky, pro které je result
je větší než 10
.
Řešení 2:
DELETE FROM exam WHERE result > 10;
exam
tabulka nyní vypadá takto:
name | výsledek |
---|---|
Janet Morgen | 9 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Diskuse:
Někdy neznáte přesné řádky, které potřebujete odstranit, nebo dokonce kolik řádků je třeba odstranit. Můžete napsat podmínku, pro kterou mají být řádky odstraněny. Podmínku může splňovat mnoho řádků, může to být pouze jeden řádek nebo žádné řádky.
Samozřejmě můžete do WHERE
napsat více podmínek , spojte je pomocí AND
nebo OR
, například:
DELETE FROM exam WHERE result > 10 AND name LIKE 'J%';