В этом учебном пособии вы узнаете, как использовать MariaDB оператор DELETE с синтаксисом и примерами.
Описание
MariaDB оператор DELETE используется для удаления одной или нескольких записей из таблицы в MariaDB.
Синтаксис
Синтаксис оператора DELETE в MariaDB:
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]]
[LIMIT number_rows];
Параметры или аргументы
- table
- Таблица, из которой вы хотите удалить записи.
- WHERE conditions
- Необязательный. Условия, которые должны быть выполнены для удаления записей. Если никаких условий не предусмотрено, все записи из таблицы будут удалены.
- ORDER BY expression
- Необязательный. Может использоваться в сочетании с LIMIT для надлежащей сортировки записей при ограничении количества удаляемых записей.
- LIMIT number_rows
- Необязательный. Если указан LIMIT, он контролирует максимальное количество записей, которые нужно удалить из таблицы. Самое большее, количество записей, указанное в number_rows, будет удалено из таблицы.
Примечание
- Вам не нужно перечислять поля в MariaDB операторе DELETE, так как вы удаляете всю строку из таблицы.
Пример с одним условием
Давайте посмотрим, как использовать оператор DELETE с одним условием в MariaDB.
Например:
1 2 |
DELETE FROM sites WHERE site_name = 'Google.com'; |
В этом примере удаляются все записи из таблицы sites, где site_name - "Google.com".
Вы можете определить количество строк, которые будут удалены, выполнив следующий оператор SELECT перед выполнением удаления.
1 2 3 |
SELECT COUNT(*) FROM sites WHERE site_name = 'Google.com'; |
Пример с несколькими условиями
Далее давайте посмотрим, как использовать оператор DELETE с несколькими условиями в MariaDB.
Например:
1 2 3 |
DELETE FROM sites WHERE site_name = 'Google.com' AND site_id >= 65; |
В этом примере будут удалены все записи из таблицы sites, где site_name имеет значение "Google.com", а site_id больше или равно 65.
Вы можете определить количество строк, которые будут удалены, выполнив следующий оператор SELECT перед выполнением удаления.
1 2 3 4 |
SELECT COUNT(*) FROM sites WHERE site_name = 'Google.com' AND site_id >= 65; |
Пример с модификатором LIMIT
Давайте посмотрим, как использовать оператор DELETE с модификатором LIMIT в MariaDB. Модификатор LIMIT используется для контроля количества удаляемых записей.
Например:
1 2 3 4 |
DELETE FROM sites WHERE site_name = 'Google.com' ORDER BY site_id ASC LIMIT 3; |
Этот пример удаления MariaDB удалит одну запись из таблицы sites (как указано в LIMIT 3), где site_name - "Google.com". Весь запрос DELETE сортируется в порядке возрастания по site_id, поэтому только три записи с наименьшими значениями site_id, у которых site_name равно "Google.com", быть удалены из таблицы. Все остальные записи в таблице sites с site_name из "Google.com" останутся в таблице.
Если вы хотите вместо этого удалить три самых больших значения site_id, для которых site_name - "Google.com", вы можете переписать оператор DELETE следующим образом:
1 2 3 4 |
DELETE FROM sites WHERE site_name = 'Google.com' ORDER BY site_id DESC LIMIT 3; |
Пример - использование условия EXISTS
Вы также можете выполнять более сложные удаления.
Вы можете удалить записи из одной таблице на основе значений другой таблицы. Поскольку вы не можете перечислить более одной таблицы в MariaDB операторе FROM при выполнении удаления, вы можете использовать оператор EXISTS.
Например:
1 2 3 4 5 6 |
DELETE FROM sites WHERE EXISTS ( SELECT * FROM pages WHERE pages.site_id = sites.site_id AND site_id <= 45 ); |
В этом примере DELETE будут удалены все записи в таблице sites, в которой есть запись в таблице pages, у которой site_id меньше или равен 45 и site_id соответствует таблицам pages и sites.
Вы можете определить количество строк, которые будут удалены, выполнив следующий оператор SELECT перед выполнением удаления.
1 2 3 4 5 6 |
SELECT COUNT(*) FROM sites WHERE EXISTS ( SELECT * FROM pages WHERE pages.site_id = sites.site_id AND site_id <= 45 ); |