Заявка за изтриване на MySQL: Как да изтриете ред от таблица

Съдържание:

Anonim

Какво представлява заявката DELETE?

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

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

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

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

За да изтриете ред в MySQL, се използва инструкцията DELETE FROM:

DELETE FROM `table_name` [WHERE condition];

ТУК

  • ИЗТРИВАНЕ ОТ `table_name` казва на MySQL сървъра да премахне редове от таблицата ...
  • [WHERE условие] не е задължително и се използва за поставяне на филтър, който ограничава броя на редовете, засегнати от заявката за реда на MySQL DELETE.

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

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

Преди да влезем в по-подробни дискусии за командата 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 itle 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, можем да използваме скрипта, показан по-долу, за да изтрием реда му от таблицата с филми.

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

Изпълнението на горния скрипт в MySQL WorkBench срещу Myflix изтрива филма с идентификатор 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 от нашата филмова таблица.

Обобщение

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