Базы данных – совокупность данных, хранимых в соответствии со схемой данных, управление (манипулирование) которыми выполняется согласно действующим средствам моделирования. Также это совокупность информации, организованной особым образом. В информатике и программирования БД чаще всего представлены электронными таблицами.

Отличительными признаками БД являются такие особенности как: совместное хранение и обработка в вычислительных системах, структурированность, наличие схем или метаданных, описывающих логическую структуру базы в формальной форме.

Для управления БД используются СУБД – системы управления. Они работают при помощи разнообразных запросов и специализированных языков. Наиболее распространенный среди них – SQL.

Далее предстоит изучить синтаксис оператора delete в SQL. Соответствующий запрос используется как на первых порах изучения информационных баз, так и при достаточно весомом опыте в соответствующей области.

Сведения, представленные далее, ориентированы на тех, кто уже знаком хотя бы поверхностно с the structure queries language (the SQL). Они также пригодятся тем, кто только начинает изучение основ упомянутого языка запросов и методов работы с информационными таблицами.

Общая характеристика

Delete from – конструкция, которая используется в the SQL достаточно часто. Работа с БД и ее таблицами – это не только добавление и корректирование записей, их вывод и сохранение. Иногда от тех или иных сведений нужно избавиться. В этом случае на помощь приходит синтаксис delete from.

Данная команда (функция) удаляет информацию из имеющейся таблицы. В SQL для этого используется еще и оператор truncate, но он менее распространен.

Delete (from … select) в языках, подобных SQL, является DML-операцией для стирания записей из информационных таблиц. При наличии на таблице внешних ключей все дочерние к удаляемым записи в подчиненных таблицах также должны быть стерты для обеспечения ссылочной целостности.

Синтаксис

В SQL команда delete … from … where имеет определенный синтаксис. В полной форме записи он окажется следующим:

Удаление данных в SQL

The delete удаляет строки (записи) из таблицы или представления основной таблицы в БД (примеры – Oracle или MySQL). Предложенный выше синтаксис the delete … from … where имеет такие ключевые слова и параметры:

  1. Schema – идентификатор полномочий. Обычно совпадает с именем того или иного пользователя. Указывает на «клиента», работающего с информационной таблицей.
  2. Table view – имя таблицы (a table), из которой удаляются строки (row). Если будет определено представление, сервер удалит строки из основной таблицы представления.
  3. The subquery – подзапрос. С его помощью команда the delete from сможет «выбрать» строки для удаления. Сервер выполнил подзапрос и использует строки его результата в качестве таблицы фразы from.
  4. The where – оператор, отвечающий за стирание только строк, удовлетворяющим определенным условиям. Соответствующие «требования» могут ссылать на tables и включать в себя разнообразные подзапросы.

Рассмотренная форма syntax записи delete … from … table используется в основном продвинутыми программистами и системными администраторами. В «сокращенной» форме delete имеет такую интерпретацию:

Удаление данных в SQL

При отсутствии условия отбора записей (operator where), система сотрет при помощи delete все, что имеется в используемой table.

Аналогичную операцию (для всех row) можно провести для оператора truncate. Он сотрет the table и пересоздаст ее заново. Соответствующий прием работает быстрее, чем удаление (delete from) всех сведений друг за другом. Особенно это заметно в случае с крупными информационными объемами.

Как выглядит truncate

В SQL delete используется почти всеми администраторами и программистами. Для того, чтобы стереть информацию, можно задействовать иной оператор. Он называется truncate. Обладает соответствующий query следующим syntax:

Удаление данных в SQL

Оптимизатор запросов в MySQL автоматически использует truncate, если в the delete … from … where отсутствует условие выборки или конструкция limit.

Truncate немного отличается от рассмотренного ранее оператора. В отличие от delete … where … select он:

  • не влечет за собой срабатывание триггеров;
  • стирает все строки в таблице, не записывая удаление отдельных строк в журнал транзакций;
  • сбрасывает счетчик идентификаторов до начального значения;
  • требует прав на изменение a table для реализации.

Запомнив соответствующие правила и syntax, разработчики смогут использовать вместо the delete … from … where конструкция truncate.

Многотабличные запросы

В процессе работы с запросами и базами информации, иногда возникают многотабличные БД. Если в the query с delete … from table используется join, то для стирания записей требуется указать, с какой конкретно таблицей будет осуществляться дальнейшая работа.

Syntax форма записи в этом случае окажется такой:

Удаление данных в SQL

Пример – необходимо убрать все брони жилья, в которых нет кухни. Запрос с delete … from … where будет иметь следующую интерпретацию:

Удаление данных в SQL

Если кроме удаления брони требовалось избавиться от самой записи жилья, запрос приобрел бы следующую форму:

Удаление данных в SQL

Примеры, предложенные выше, актуальны для многотабличных информационных баз. Они встречаются часто, но новичкам не нужны. Тем, кто только учится работать с the SQL queries, лучше сконцентрироваться на элементарных примерах the delete from.

Простые примеры

При работе с утверждением the delete активируется любой delete-триггер, определенный в таблице. Далее предстоит познакомиться с несколькими наглядными примерами использования рассмотренного оператора.

Удаление данных в SQL

Здесь происходит стирание всех строк без исключения. А вот команда, которая из таблицы удалит всех продавцов, которые взимают комиссионные менее 100 единиц в месяц:

Удаление данных в SQL

При обработке запроса the delete … from table будут удалены все строки, попадающие под условие JOB = «Salesman» and comm < 100.

А вот еще один вариант записи предыдущего примера запроса:Удаление данных в SQL

В MySQL можно использовать такую форму записи the delete … from … select:

Удаление данных в SQL

Она применяется тогда, когда программист/системный администратор хочет избавиться сразу от всех записей в имеющейся информационной базе.

Прокачать навыки работы с базами данных можно на курсах Otus.