Что делает оператор SQL - Delete?

При работе с базами данных нередко возникает необходимость в удалении одной или нескольких строк данных. Для реализации этого действия существует специальный оператор в SQL - Delete.

Синтаксис Delete

Одной из часто используемых операций при работе с базами данных является оператор удаления некоторого числа строк. Для того чтобы убрать лишние записи из таблицы, достаточно воспользоваться специальной функцией SQL - Delete.

sql delete

Синтаксис этого оператора аналогичен процедурам вставки и изменения записей. После ключевого слова DELETE следует конструкция, указывающая таблицу, в которой будет произведено удаление - FROM и имя таблицы. После этого идёт необязательная часть структуры синтаксиса оператора, которая может содержать указания, однозначно определяющие одну или несколько строк.

DELETE FROM <имя таблицы > [WHERE <предикат>].

Возможное предложение начинается с ключевого слова "WHERE", за которым следует набор предикатов. В нём можно указать как явное значение определённого поля, обозначив его в виде единственного или перечислением, так и некоторый диапазон или условие. В предикате также можно использовать вложенные условия, например, удалять только те записи, которые содержатся или отсутствуют в другой таблице.

Пример удаления нескольких или всех записей

Чтобы удалить запись, необходимо использовать необязательную часть структуры функции Delete. MS SQL поддерживает лишь одно указание данных - с помощью ключевого слова WHERE. Поэтому параметры поиска искомой строки следует указывать только после него.

Если необходимо очистить таблицу, дополнительной частью структуры пользоваться не обязательно, достаточно просто указать имя таблицы в приведённом выше синтаксисе SQL Delete. Пример удаления всех записей приведён далее:

DELETE FROM "таблица_1".

Данный запрос произведёт очистку таблицы с именем "таблица_1". Стоит отметить, что в этом случае удаления самой таблицы не произойдёт - для этого необходимо воспользоваться другими средствами языка SQL.

sql delete пример

В случае если необходимо удалить лишь те записи, которые соответствуют определённому требованию, необходимо добавить оператор условия. Например, в следующем примере функция SQL Delete произведёт удаление всех строк в таблице "Персонал", у которых в поле "Имя" находится значение "Иван":

DELETE FROM "Персонал" WHERE "Имя" = "Иван".

При необходимости, можно указывать несколько условий в одном запросе, объединяя их с помощью логических "И" и "ИЛИ". В следующем примере будут удалены все записи, в которых имя сотрудника "Иван" или "Олег":

DELETE FROM "Персонал" WHERE "Имя" = "Иван" OR "Имя" = "Олег".

Пример удаления одной записи

Однако при удалении не всегда требуется удалить все строки, удовлетворяющие условию. Чтобы добиться стирания данных лишь определённого числа строк, к структуре функции SQL Delete необходимо добавить ключевое слово LIMIT, после чего указать явное значение строк, которое необходимо удалить.

delete ms slq

В следующем примере из таблицы "Персонал" будет удалено только две записи о сотрудниках, которых зовут Иван:

DELETE FROM "Персонал" WHERE "Имя" = "Иван" LIMIT 2.

Стоит отметить, что при выполнении операции удаления строк следует обращать внимание на правильность написания запросов. В случае ошибки в синтаксисе или условии может произойти избыточное удаление строк, вернуть которые в таблицу автоматически будет практически невозможно.