Что такое 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_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.
- После того, как данные были удалены, их невозможно восстановить, поэтому настоятельно рекомендуем сделать резервные копии перед удалением данных.