Този урок е част от поредицата Научете основни SQL заявки с помощта на MySQL. В този урок ще обсъдим SQL заявки за изтриване на редове или данни на таблица в MySQL.
Изтриване на заявка
Командата DELETE може да се използва за изтриване или премахване на редове от таблица. Командата DELETE е необратима, следователно трябва да я използваме внимателно. В случай, че сте влезли отдалечено в базата данни, ще ви трябва и привилегията DELETE за таблицата, за да изтриете редовете от таблица.
# DELETE - Syntax
DELETE FROM `table_name` WHERE <single or multiple filter conditions>;
Обяснение на заявката
Командата на MySQL DELETE може да се използва за изтриване на редове или данни от даденото име на таблица, където името на таблицата е задължително, а клаузата WHERE не е задължителна.
Трябва да посочим поне едно условие, използвайки клаузата WHERE за редовете, за да отговарят на изискванията за изтриване, в противен случай цялата таблица ще бъде изтрита. Всички редове на таблицата
Примери
Този раздел предоставя примери за изтриване на редове от таблицата с помощта на командата DELETE. Използвайте посочената по-долу заявка, за да създадете потребителска таблица с идентификатор, собствено име, фамилия и активни колони за съхраняване на потребителски данни.
# 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`));
Посочената по-долу заявка може да се използва за вмъкване на данни в потребителската таблица.
# 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 );
Гореспоменатата заявка ще вмъкне 5 реда в таблицата с идентификатор, собствено име, фамилия и активни колони, за да представят 5 различни потребители.
Сега ще изтрием данните, въведени от нас в потребителската таблица. Това може да се направи с помощта на командата DELETE, както е показано по-долу.
# 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
Гореспоменатите заявки изтриват редовете от потребителската таблица с помощта на клаузата WHERE. Редовете в таблицата ще бъдат изтрити, в случай че редът отговаря на дадените условия.
Сега отново изпълнете заявката INSERT, за да вмъкнете тестовите данни. Можем също да изтрием редове, използвайки множество условия, както е показано по-долу.
# 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
Ето как можем да изтрием данните, съхранявани в MySQL таблиците.