Базы данных – совокупность данных, хранимых в соответствии со схемой данных, управление (манипулирование) которыми выполняется согласно действующим средствам моделирования. Также это совокупность информации, организованной особым образом. В информатике и программирования БД чаще всего представлены электронными таблицами.
Отличительными признаками БД являются такие особенности как: совместное хранение и обработка в вычислительных системах, структурированность, наличие схем или метаданных, описывающих логическую структуру базы в формальной форме.
Для управления БД используются СУБД – системы управления. Они работают при помощи разнообразных запросов и специализированных языков. Наиболее распространенный среди них – 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 имеет определенный синтаксис. В полной форме записи он окажется следующим:
The delete удаляет строки (записи) из таблицы или представления основной таблицы в БД (примеры – Oracle или MySQL). Предложенный выше синтаксис the delete … from … where имеет такие ключевые слова и параметры:
- Schema – идентификатор полномочий. Обычно совпадает с именем того или иного пользователя. Указывает на «клиента», работающего с информационной таблицей.
- Table view – имя таблицы (a table), из которой удаляются строки (row). Если будет определено представление, сервер удалит строки из основной таблицы представления.
- The subquery – подзапрос. С его помощью команда the delete from сможет «выбрать» строки для удаления. Сервер выполнил подзапрос и использует строки его результата в качестве таблицы фразы from.
- The where – оператор, отвечающий за стирание только строк, удовлетворяющим определенным условиям. Соответствующие «требования» могут ссылать на tables и включать в себя разнообразные подзапросы.
Рассмотренная форма syntax записи delete … from … table используется в основном продвинутыми программистами и системными администраторами. В «сокращенной» форме delete имеет такую интерпретацию:
При отсутствии условия отбора записей (operator where), система сотрет при помощи delete все, что имеется в используемой table.
Аналогичную операцию (для всех row) можно провести для оператора truncate. Он сотрет the table и пересоздаст ее заново. Соответствующий прием работает быстрее, чем удаление (delete from) всех сведений друг за другом. Особенно это заметно в случае с крупными информационными объемами.
Как выглядит truncate
В SQL delete используется почти всеми администраторами и программистами. Для того, чтобы стереть информацию, можно задействовать иной оператор. Он называется truncate. Обладает соответствующий query следующим syntax:
Оптимизатор запросов в 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 форма записи в этом случае окажется такой:
Пример – необходимо убрать все брони жилья, в которых нет кухни. Запрос с delete … from … where будет иметь следующую интерпретацию:
Если кроме удаления брони требовалось избавиться от самой записи жилья, запрос приобрел бы следующую форму:
Примеры, предложенные выше, актуальны для многотабличных информационных баз. Они встречаются часто, но новичкам не нужны. Тем, кто только учится работать с the SQL queries, лучше сконцентрироваться на элементарных примерах the delete from.
Простые примеры
При работе с утверждением the delete активируется любой delete-триггер, определенный в таблице. Далее предстоит познакомиться с несколькими наглядными примерами использования рассмотренного оператора.
Здесь происходит стирание всех строк без исключения. А вот команда, которая из таблицы удалит всех продавцов, которые взимают комиссионные менее 100 единиц в месяц:
При обработке запроса the delete … from table будут удалены все строки, попадающие под условие JOB = «Salesman» and comm < 100.
А вот еще один вариант записи предыдущего примера запроса:
В MySQL можно использовать такую форму записи the delete … from … select:
Она применяется тогда, когда программист/системный администратор хочет избавиться сразу от всех записей в имеющейся информационной базе.
Прокачать навыки работы с базами данных можно на курсах Otus.