Оператор DELETE в MySQL

Вы можете использовать командуDELETE FROMдля удаления записей из таблиц данных MySQL.

Вы можете выполнить эту команду в командной строкеmysql>или в PHP-скрипте.

Синтаксис

Ниже приведён общий синтаксис оператора DELETE для удаления данных из таблиц данных MySQL:

DELETE FROM table_name
WHERE condition;

Описание параметра:

  • table_name— это имя таблицы, из которой вы хотите удалить данные.
  • WHERE condition— это необязательное предложение, используемое для указания строк для удаления. Если опуститьWHEREпредложение, все строки в таблице будут удалены.

Дополнительные примечания:

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

Предложение WHERE очень полезно, когда вы хотите удалить конкретные записи из таблицы данных.

Примеры

Следующие примеры демонстрируют, как использовать оператор DELETE.

1. Удаление строк, удовлетворяющих условиям:

DELETE FROM students
WHERE graduation_year = 2021;

Приведённый выше оператор SQL удаляет все записи студентов, у которых graduation_year равен 2021, в таблице students.

2. Удаление всех строк:

DELETE FROM orders;

Приведённый выше оператор SQL удаляет все записи из таблицы orders, но структура таблицы остаётся неизменной.

3. Использование подзапроса для удаления строк, удовлетворяющих условиям:

DELETE FROM customers
WHERE customer_id IN (
    SELECT customer_id
    FROM orders
    WHERE order_date < '2023-01-01'
);

Приведённый выше оператор SQL использует подзапрос для удаления клиентов, соответствующих заказам, размещённым до '2023-01-01', в таблице orders.

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


Удаление данных из командной строки

Здесь мы будем использовать предложение WHERE в команде DELETE, чтобы удалить выбранные данные из таблицы данных MySQL example_tbl.

Пример

Следующий пример удаляет запись с example_id равным 3 в таблице example_tbl:

Оператор DELETE:

mysql> use EXAMPLE; База данных изменена mysql> DELETE FROM example_tbl WHERE example_id=3; Запрос OK, 1 строка затронута (0.23 сек)

Удаление данных с помощью скрипта PHP

PHP использует функцию mysqli_query() для выполнения SQL-запросов. Команду DELETE можно использовать с предложением WHERE или без него.

Эта функция оказывает такой жеmysql>эффект, как выполнение SQL-команд в командной строке.

Пример

Следующий пример на PHP удалит запись с example_id равным 3 из таблицы example_tbl:

Проверка предложения DELETE в MySQL:

<?php $dbhost = 'localhost'; //адрес хоста сервера MySQL $dbuser = 'root'; //имя пользователя MySQL $dbpass = '123456'; //Пароль пользователя MySQL $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Не удалось установить соединение:' . mysqli_error($conn)); } //Установите кодировку, чтобы избежать появления искажённых символов. mysqli_query($conn , "set names utf8"); $sql = 'DELETE FROM example_tbl WHERE example_id=3'; mysqli_select_db( $conn, 'EXAMPLE' ); $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('Не удалось удалить данные:' . mysqli_error($conn)); } echo 'Данные успешно удалены!'; mysqli_close($conn); ?>
Другие расширения