09-06-2018 12:14

Оператор удаления Delete MySQL

Информация хранится в базе данных MySQL в виде таблиц. У каждой таблицы есть несколько колонок и произвольное число строк. Как правило, информация размещается в строках, а её структура определяется именами колонок.

Можно удалять строки запросом Query Delete MySQL, но предпочтительным является собственный способ хранения данных. Это позволяет определить порядок удаления информации спроектированный разработчиком, а не предусмотренный языком запросов базы данных.

Синтаксис и использование оператора Delete MySQL

Удаление дубликатов MySQL distinctВам будет интересно:Удаление дубликатов MySQL distinct

Обычно для удаления записей разработчик использует простые формы запросов к базе данных MySQL:

  • delete from `ex_customs` - удаление всех записей из таблицы ex_customs;
  • delete from `ex_customs` where `aCol` = '12.13.14' - удаление только тех записей, которые в колонке `aCol` имеют значение '12.13.14';

На самом деле, оператор Delete MySQL предлагает множество вариантов для удаления записей.

Первоначально можно сортировать (order by) записи таблицы и удалять те из них, которые удовлетворяют конкретным условиям (where). Определённый эффект можно достигнуть при использовании опции Limit и удалять конкретное число записей.

Удаление только одной записи с конкретным уникальным кодом можно выполнить так:

В данном примере из таблицы `is_cache` будет удалена только одна запись, у которой значение `owner_code` = 'CA011712011116164842'.

Безопасное удаление информации

Если таблица содержит важные данные, то при удалении следует предпринять меры предосторожности и контролировать действия пользователя, который управляет содержимым базы данных и её таблиц.

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

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

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

Использование операции удаления в объекте базы данных

Запросы MySQL Query: delete, insert и update в своём обычном виде не слишком удобны при разработке алгоритмов обработки информации, когда приходится работать с несколькими таблицами сразу одинаковым образом.

Приходится дублировать практически одинаковые запросы и использовать их в разных местах алгоритма. При необходимости обновления кода, внесение правок становится заметной проблемой: можно упустить некоторые запросы и образуется ошибка.

Очень эффективно создать объект для работы с базой данных, который включает в себя четыре основные операции:

  • добавление (iLineIns, iLinesAdd);
  • изменение (iLineUpd);
  • удаление (iLineDel);
  • выборка (iLineSel).

Все остальные операции: подсчёт строк, таблиц, поиск минимального и максимального элементов, поиск информации по таблицам, колонкам зависят от конкретной задачи.

При создании объекта все обращения к нему производятся одинаковым образом, а при необходимости изменения - меняется только объект доступа к базе данных. В отношении операции удаления delete, MySQL здесь обеспечивает дополнительную гарантию безопасности. Если алгоритм удаления работает, то он одинаковым образом действует по всем таблицам базы данных.

Объектно-ориентированное удаление

Проблема запросов MySQL: delete from * where & в том, что есть набор таблиц (*) и есть набор условий (&). MySQL - отличная, быстрая, надёжная и компактная база данных от профессионального разработчика больших баз данных.

Но в каждой предметной области всегда приходится писать конкретные запросы, а это потенциальные ошибки. Процесс трудоемкий и занимает определённое время.

Если таблицы базы данных содержат объекты, вовсе не обязательно наличие множества таблиц. Достаточно одной (может сколько угодно таблиц), в которой будут находится самые разные объекты. Например, каждый объект используемой системы объектов, может записать себя в строку символов и восстановиться из строки символов.

Фактически объект в контексте базы данных - это последовательность символов. Удалить объект - это не оператор Delete MySQL, а действие разработчика, который просто удаляет строку символов из конкретной записи базы данных.

В данном примере одна строка базы данных может содержать несколько объектов в поле oj_store, при этом тело объекта может занимать не одну строку базы данных, а несколько (нумерация в поле oj_line). Каждый объект имеет имя oj_name, код экземпляра oj_code и владельца этого экземпляра - oj_owner.

При таком решении запись и удаление производятся на уровне объектов, а не строк базы данных. Это переводит операцию удаления в свойство системы объектов, не в использовании конкретного оператора запроса.



Источник