5.1 Оператор DELETE FROM
Что просто делать в SQL, так это удалять данные. Ты можешь удалить абсолютно все очень быстро, и у тебя даже никто не спросит никаких подтверждений.
Начнем с самого простого сценария: как удалить одну строку в таблице.
Этот сценарий ты будешь встречать чаще всего, обычно это удаление какой-то конкретной записи, и стандартный запрос обычно имеет вид:
DELETE FROM таблица
WHERE id = 133;
Это единственный запрос, где не нужно указывать имена колонок: данные ведь удаляются сразу строками.
Второй сценарий – это удаление строк, которые заданы списком id, тут тоже все довольно просто:
DELETE FROM таблица
WHERE id IN (1, 2, 3, …);
Третий сценарий – это удаление строк, которые соответствуют определенному условию:
DELETE FROM таблица
WHERE условие;
Допустим, мы хотим уволить всех наших программистов, тогда нужно написать запрос типа:
DELETE FROM employee
WHERE occupation = 'Программист';
И, наконец, если ты хочешь удалить все записи, то можешь написать такой запрос:
DELETE FROM таблица
Такого простого запроса достаточно, чтобы удалить все записи из таблицы. Кстати, никакого Ctrl+Z при этом не будет. Записи просто удаляются без возможности восстановления и все. Так что делай бэкапы, да почаще.
5.2 Удаляем вообще все
Для быстрого удаления (чтобы добавить юзерам головной боли) у SQL есть еще несколько команд.
Как быстро удалить все данные в таблице? Воспользуйся оператором TRUNCATE
:
TRUNCATE TABLE таблица
Одна опечатка в названии таблицы — и пара дней восстановления данных тебе обеспечены. Радуйся, что ты не админ баз данных.
Если тебе нужно удалить не просто данные в таблице, а и саму таблицу, то для этого есть оператор DROP
:
DROP TABLE таблица
Кстати, аналогичные варианты есть и со схемами баз данных. Если хочешь удалить саму базу, то:
DROP SCHEME база_данных
или:
DROP DATABASE база_данных
Также с помощью DROP можно удалять:
- EVENT
- FUNCTION
- PROCEDURE
- INDEX
- VIEW
- TRIGGER
И вот тебе пару интересных историй, связанных с удалением данных:
Провал дня. GitLab удалил 300 ГБ данных клиентов из-за ошибки сисадмина
sudo rm -rf, или Хроника инцидента с базой данных GitLab.com от 2017/01/31
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ