MySQL DELETE Query: Как да изтриете ред от таблица

Какво представлява заявката за ИЗТРИВАНЕ?

MySQL Изтрий командата се използва за изтриване на редове, които вече не са необходими от таблиците на базата данни. Той изтрива целия ред от таблицата и връща броя на изтритите редове. Командата Delete е полезна за изтриване на временни или остарели данни от вашата база данни.

Заявката за изтриване в MySQL може да изтрие повече от един ред от таблица в една заявка. Това се оказва предимство при премахване на голям брой редове от таблица на база данни.

След като изтриете ред в MySQL ред е изтрит, не може да бъде възстановен. Ето защо е силно препоръчително да направите резервни копия на базата данни, преди да изтриете каквито и да било данни от базата данни. Това може да ви позволи да възстановите базата данни и да прегледате данните по-късно, ако е необходимо.

Как да изтриете ред в MySQL

За да изтриете ред в MySQL, изразът DELETE FROM се използва:

DELETE FROM `table_name` [WHERE condition];

ТУК

  • DELETE FROM `table_name` казва MySQL сървър за премахване на редове от таблицата ..
  • [WHERE условие] не е задължително и се използва за поставяне на филтър, който ограничава броя на редовете, засегнати от синтаксиса DELETE MySQL заявка за ред.

Ако WHERE клауза не се използва в MySQL DELETE заявка, тогава всички редове в дадена таблица ще бъдат изтрити.

Пример за MySQL Изтриване на заявка

Преди да преминем към по-подробна дискусия относно оператора SQL DELETE, нека вмъкнем някои примерни данни в таблицата с филми, с които да работим.

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);

Изпълнението на горния скрипт добавя три (3) филма в таблицата с филми. Преди да продължим с нашия урок, нека вземем всички филми в нашата таблица. Показаният по-долу скрипт прави това.

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
18 The Great Dictator Chalie Chaplie 1920 7
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

Да предположим, че видеотеката на Myflix вече не желае да дава под наем „Великият диктатор“ на своите членове и искат да бъде премахната от базата данни. Неговият идентификатор на филм е 18, можем да използваме скрипта, показан по-долу, за да изтрием ред от таблицата MySQL пример.

DELETE FROM `movies` WHERE `movie_id` = 18;

Изпълнение на горния скрипт в MySQL Работна маса срещу Myflix изтрива филма с id 18 от таблицата на базата данни.

Нека видим текущото състояние на таблицата с филми.

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

ЗАБЕЛЕЖКА:

  • филмът с идентификатор 18 не е върнат в набора с резултати от заявката.
  • не можете да изтриете нито една колона за таблица. Можете да изтриете цял ред.

Да приемем, че имаме списък с филми, които искаме да изтрием. Можем да използваме клаузата WHERE заедно с IN.

DELETE FROM `movies` WHERE `movie_id`  IN (20,21);

Изпълнението на горния скрипт изтрива филми с идентификатори 20 и 21 от нашата таблица с филми.

Oбобщение

  • Командата Изтриване в MySQL, се използва за премахване на данни, които вече не са необходими от таблица.
  • „Клаузата WHERE“ се използва за ограничаване на броя на редовете, засегнати от заявката DELETE MySQL команда.
  • След като данните бъдат изтрити, те не могат да бъдат възстановени, затова силно препоръчваме да направите резервни копия, преди да изтриете данните.