Tento tutoriál je součástí série Naučte se základní SQL dotazy pomocí MySQL. V tomto tutoriálu probereme SQL dotazy k odstranění řádků nebo dat tabulky v MySQL.
Smazat dotaz
Příkaz DELETE lze použít k odstranění nebo odstranění řádků tabulky. Příkaz DELETE je nevratný, proto jej musíme používat opatrně. V případě, že jste vzdáleně přihlášeni k databázi, budete také potřebovat oprávnění DELETE pro tabulku, abyste mohli smazat řádky z tabulky.
# DELETE - Syntax
DELETE FROM `table_name` WHERE <single or multiple filter conditions>;
Vysvětlení dotazu
Příkaz MySQL DELETE lze použít k odstranění řádků nebo dat daného názvu tabulky, kde je název tabulky povinný a klauzule WHERE nepovinná.
Musíme zadat alespoň jednu podmínku pomocí klauzule WHERE, aby se řádky kvalifikovaly pro odstranění, jinak bude vymazána celá tabulka. Všechny řádky tabulky
Příklady
Tato část obsahuje příklady odstranění řádků tabulky pomocí příkazu DELETE. Pomocí níže uvedeného dotazu vytvořte uživatelskou tabulku obsahující sloupce id, jméno, příjmení a aktivní sloupce pro uložení uživatelských dat.
# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));
K vložení dat do uživatelské tabulky lze použít níže uvedený dotaz.
# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'Catherine', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );
Výše zmíněný dotaz vloží do tabulky 5 řádků obsahujících id, jméno, příjmení a aktivní sloupce, které představují 5 různých uživatelů.
Nyní smažeme námi vložená data v uživatelské tabulce. To lze provést pomocí příkazu DELETE, jak je znázorněno níže.
# DELETE - Delete all the inactive users
DELETE FROM `user` WHERE `active` = 0;
# Result
1 John Smith 1
2 Rick Jones 1
4 Harsh Upadhyay 1
# DELETE - Remove selective users
DELETE FROM `user` WHERE `user_id` = 1;
DELETE FROM `user` WHERE `user_id` IN( 2, 4 );
# Result - All rows deleted
Výše uvedené dotazy odstraní řádky z uživatelské tabulky pomocí klauzule WHERE. Řádky tabulky budou smazány, pokud řádek splní dané podmínky.
Nyní znovu proveďte dotaz INSERT pro vložení testovacích dat. Můžeme také odstranit řádky pomocí více podmínek, jak je uvedeno níže.
# DELETE - Delete inactive users using first name
DELETE FROM `user` WHERE `first_name` = 'Catherine' AND `active` = 0;
# Result
1 John Smith 1
2 Rick Jones 1
4 Harsh Upadhyay 1
5 Tajwinder Singh 0
Takto můžeme smazat data uložená v tabulkách MySQL.