DELETE. Удаление записей в таблице базы данных MySQL

Команда DELETE

Если вам необходимо удалить одну, несколько или все записи в таблице базы данных, то с этим вам поможет команда DELETE.

Синтаксис запроса на удаление записи.

Будьте предельно внимательны при выполнении запросов на удаление записей! Если вы не укажите команду WHERE и последующее условие, то будут удалены все записи в таблице.

Удаление нескольких записей таблицы

Для примера удалим несколько записей из таблицы books, которая хранится в базе данных Bookstore.

Оповестим сервер MySQL о базе данных, для которой будут выполнятся запросы.

Далее выведем записи таблицы books с идентификаторами с 1 по 5.

mysql> SELECT id, title, author, price, discount FROM books WHERE id BETWEEN 1 AND 5;
+----+-----------------------+------------------------------+--------+----------+
| id | title                 | author                       | price  | discount |
+----+-----------------------+------------------------------+--------+----------+
|  1 | Капитанская дочка     | А.С.Пушкин                   | 151.20 |        0 |
|  2 | Мертвые души          | Н.В.Гоголь                   | 141.00 |        0 |
|  3 | Анна Каренина         | Л.Н.Толстой                  | 135.00 |       20 |
|  4 | Бесы                  | Ф.М.Достоевский              | 122.00 |        0 |
|  5 | Нос                   | Н.В.Гоголь                   | 105.00 |        0 |
+----+-----------------------+------------------------------+--------+----------+
5 rows in set (0.00 sec)

mysql>

 Допустим необходимо удалить все записи с книгами за авторством Н.В.Гоголя. Запрос на удаление и его результат будет выглядеть следующим образом.

mysql> DELETE FROM books WHERE author='Н.В.Гоголь';
Query OK, 2 rows affected (0.00 sec)

mysql> SELECT id, title, author, price, discount FROM books WHERE id BETWEEN 1 AND 5;
+----+------------------------+------------------------------+--------+----------+
| id | title                  | author                       | price  | discount |
+----+------------------------+------------------------------+--------+----------+
|  1 | Капитанская дочка      | А.С.Пушкин                   | 151.20 |        0 |
|  3 | Анна Каренина          | Л.Н.Толстой                  | 135.00 |       20 |
|  4 | Бесы                   | Ф.М.Достоевский              | 122.00 |        0 |
+----+------------------------+------------------------------+--------+----------+
3 rows in set (0.00 sec)

mysql>

Удаление всех записей таблицы

Если вам нужно очистить всю таблицу от имеющихся в ней данных, то просто выполните команду DELETE без каких либо условий.

Следующая команда удалит все записи в таблице books.

Как удалить записи в таблице базы данных MySQL с помощью PHP (PDO)

Для удаления нескольких несвязанных записей, удобнее воспользоваться HTML-формой, где в конце каждой строки будет стоять поле для флага (checkbox), при установке которого, строка будет считаться выделенной для удаления.

Создадим файл index.php, в котором выведем первые 5 записей таблицы books и разместим в них код формы с полем для флага.

Откроем в браузере страницу index.php и увидим следующую таблицу с записями.

Вывод записей из таблицы books с возможностью их удаления
Вывод записей из таблицы books с возможностью их удаления

Для того чтобы наша форма сработала, необходимо также создать файл delete.php, в котором будем обрабатывать полученные от формы идентификаторы записей, а также составим и выполним запрос на удаление выбранных записей.

Теперь после того как мы выбрали две записи на удаление, а файл delete.php успешно получил данные и выполнил составленный запрос, мы увидим таблицу, в которой записи с идентификаторами 4 и 5 будут отсутствовать, а на их место сдвинутся записи идущие далее.

Результат работы файла delete.php (записи с Id =4 и Id=5 - удалены)
Результат работы файла delete.php (записи с id =4 и id=5 - удалены)

Заключение

В данной статье мы рассмотрели правила и возможности использования команды DELETE для удаления записей из таблицы базы данных, используя терминал. Также увидели, то как быстро можно удалить сразу несколько записей из таблицы с помощью PHP (PDO).