MySQL DELETE Query: Jak odstranit řádek z tabulky
Co je to DELETE Query?
MySQL Vymazat příkaz se používá k odstranění řádků, které již nejsou vyžadovány z databázových tabulek. Vymaže celý řádek z tabulky a vrátí počet smazaných řádků. Příkaz Delete se hodí k odstranění dočasných nebo zastaralých dat z databáze.
Dotaz Smazat v MySQL může odstranit více než jeden řádek z tabulky v jednom dotazu. To se ukazuje jako výhoda při odstraňování velkého počtu řádků z databázové tabulky.
Jakmile je řádek Delete in MySQL řádek byl smazán, nelze jej obnovit. Důrazně se proto doporučuje provést zálohu databáze před odstraněním jakýchkoli dat z databáze. To vám umožní obnovit databázi a zobrazit data později, pokud to bude potřeba.
Jak smazat řádek v MySQL
Chcete-li odstranit řádek v MySQL, používá se příkaz DELETE FROM:
DELETE FROM `table_name` [WHERE condition];
ZDE
- DELETE FROM `název_tabulky` říká MySQL server pro odstranění řádků z tabulky ..
- [WHERE condition] je volitelná a používá se k vložení filtru, který omezuje počet řádků ovlivněných syntaxí DELETE MySQL řádek dotazu.
V případě, že klauzule WHERE se nepoužívá v MySQL DELETE dotaz, pak budou odstraněny všechny řádky v dané tabulce.
Příklad MySQL Smazat dotaz
Než se pustíme do podrobnější diskuse o příkazu SQL DELETE, vložíme do tabulky filmů ukázková data, se kterými budeme pracovat.
INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 7); INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8); INSERT INTO movies (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);
Spuštěním výše uvedeného skriptu přidáte do tabulky filmů tři (3) filmy. Než půjdeme dále do naší lekce, shrňme si všechny filmy v naší tabulce. Skript uvedený níže to dělá.
SELECT * FROM `movies`;
Spuštění výše uvedeného skriptu nám poskytne následující výsledky.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
18 | The Great Dictator | Chalie Chaplie | 1920 | 7 |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
Předpokládejme, že videotéka Myflix si již nepřeje pronajímat „Velkého diktátora“ svým členům a chtějí jej odstranit z databáze. Jeho ID filmu je 18, můžeme použít skript uvedený níže k odstranění řádku z tabulky MySQL příklad.
DELETE FROM `movies` WHERE `movie_id` = 18;
Spuštění výše uvedeného skriptu v MySQL pracovní stůl proti Myflix odstraní film s ID 18 z tabulky databáze.
Podívejme se na aktuální stav tabulky filmů.
SELECT * FROM `movies`;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
POZNÁMKA:
- film s ID 18 nebyl vrácen v sadě výsledků dotazu.
- nelze odstranit jeden sloupec pro tabulku. Můžete smazat celý řádek.
Řekněme, že máme seznam filmů, které chceme smazat. Spolu s IN můžeme použít klauzuli WHERE.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
Spuštěním výše uvedeného skriptu se z naší tabulky filmů odstraní filmy s ID 20 a 21.
Shrnutí
- Příkaz Smazat v MySQL, se používá k odstranění dat, která již nejsou vyžadována z tabulky.
- Klauzule „WHERE“ se používá k omezení počtu řádků ovlivněných dotazem DELETE MySQL příkaz.
- Jakmile jsou data smazána, nelze je obnovit, proto důrazně doporučujeme před smazáním dat zálohovat.