Учебники

10) УДАЛИТЬ

Что такое DELETE Query?

Команда MySQL DELETE используется для удаления строк, которые больше не требуются из таблиц базы данных. Он удаляет всю строку из таблицы и возвращает количество удаленных строк. Команда Delete пригодится для удаления временных или устаревших данных из вашей базы данных.

Запрос на удаление в MySQL может удалить более одной строки из таблицы в одном запросе. Это оказывается преимуществом при удалении большого количества строк из таблицы базы данных.

После удаления строки в строке MySQL ее невозможно восстановить. Поэтому настоятельно рекомендуется сделать резервные копии базы данных перед удалением любых данных из базы данных. Это может позволить вам восстановить базу данных и просмотреть данные позже, если это потребуется.

Как удалить строку в MySQL

Чтобы удалить строки в таблице MySQL, используйте оператор DELETE FROM:

DELETE FROM `table_name` [WHERE condition];

ВОТ

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

Если предложение WHERE не используется в запросе DELETE MySQL, все строки в данной таблице будут удалены.

Пример MySQL Delete Query

Прежде чем перейти к более подробному обсуждению команды 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_iditledirectoryear_releasedcategory_id
1Pirates of the Caribean 4Rob Marshall20111
2Forgetting Sarah MarshalNicholas Stoller20082
3X-MenNULL2008NULL
4Code Name BlackEdgar Jimz2010NULL
5Daddy's Little GirlsNULL20078
6Angels and DemonsNULL20076
7Davinci CodeNULL20076
9Honey moonersJohn Schultz20058
1667% GuiltyNULL2012NULL
18The Great DictatorChalie Chaplie19207
19sample movieAnonymousNULL8
20movie 3John Brown19208

 Предположим, что видеотека Myflix больше не хочет сдавать в аренду «Великого диктатора» своим членам, и они хотят, чтобы он был удален из базы данных. Идентификатор фильма — 18, мы можем использовать скрипт, показанный ниже, чтобы удалить его строку из таблицы фильмов.

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

Выполнение вышеупомянутого сценария в MySQL WorkBench против Myflix удаляет фильм с идентификатором 18 из таблицы базы данных.

Давайте посмотрим текущее состояние таблицы фильмов.

SELECT * FROM `movies`;
movie_idtitledirectoryear_releasedcategory_id
1Pirates of the Caribean 4Rob Marshall20111
2Forgetting Sarah MarshalNicholas Stoller20082
3X-MenNULL2008NULL
4Code Name BlackEdgar Jimz2010NULL
5Daddy's Little GirlsNULL20078
6Angels and DemonsNULL20076
7Davinci CodeNULL20076
9Honey moonersJohn Schultz20058
1667% GuiltyNULL2012NULL
19sample movieAnonymousNULL8
20movie 3John Brown19208

НОТА:

  • фильм с идентификатором 18 не был возвращен в наборе результатов запроса.
  • Вы не можете удалить один столбец для таблицы. Вы можете удалить всю строку.

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

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

Выполнение вышеуказанного сценария удаляет фильмы с идентификаторами 20 и 21 из нашей таблицы фильмов.

Резюме

  • Команда delete используется для удаления данных, которые больше не требуются из таблицы.
  • «Предложение WHERE» используется для ограничения количества строк, затронутых запросом DELETE.
  • После того, как данные были удалены, их невозможно восстановить, поэтому настоятельно рекомендуем сделать резервные копии перед удалением данных.