Оператор DELETE в SQL
В этой статье вы узнаете, как удалить записи из таблицы базы данных с помощью SQL.
В одной из предыдущих статей мы научились вставлять записи в таблицу БД с помощью оператора INSERT
. Записи так же можно удалять из таблицы — с помощью оператора DELETE
.
Синтаксис
Оператор DELETE
используется для удаления одной или нескольких строк из таблицы.
DELETE FROM имя_таблицы WHERE условие;
Предупреждение.
WHERE
в оператореDELETE
определяет, какая запись или записи должны быть удалены. Это необязательный параметр, но если вы опустите или забудетеWHERE
, удалены будут все записи навсегда.
Пример: удаление записей по условию
Давайте удалим несколько записей из таблицы persons
, которую создали в статье про создание таблицы.
Предположим, что таблица persons
изначально выглядит так:
+----+--------------------+------------+-------------+ | id | name | birth_date | phone | +----+--------------------+------------+-------------+ | 1 | Peter Wilson | 1990-07-15 | 0711-020361 | | 2 | Carrie Simpson | 1995-05-01 | 0251-031259 | | 3 | Victoria Ashworth | 1996-10-17 | 0695-346721 | | 4 | George Bailey | 1993-03-05 | 0897-034214 | | 5 | Norman Bates | 1999-08-25 | 0522-556721 | +----+--------------------+------------+-------------+
Допустим, нам нужно удалить строку из таблицы persons
, в которых значение id
больше 3.
DELETE FROM persons WHERE id > 3;
После выполнения запроса таблица persons
будет выглядеть следующим образом:
+----+--------------------+------------+-------------+ | id | name | birth_date | phone | +----+--------------------+------------+-------------+ | 1 | Peter Wilson | 1990-07-15 | 0711-020361 | | 2 | Carrie Simpson | 1995-05-01 | 0251-031259 | | 3 | Victoria Ashworth | 1996-10-17 | 0695-346721 | +----+--------------------+------------+-------------+
Пример: удаление всех записей
Если вы не укажете WHERE
в операторе DELETE
, из таблицы удалятся все строки. Однако сама целевая таблица не удалится, то есть структура таблицы, атрибуты и индексы останутся нетронутыми.
Следующий запрос удалит все записи из таблицы persons
:
DELETE FROM persons;
Теперь, если вы попытаетесь выбрать записи из таблицы persons
, вы получите пустой набор результатов.