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 при цьому не буде. Записи просто видаляються без можливості відновлення. Тож роби бекапи частіше. .
2. Видаляємо взагалі все
Для швидкого видалення (щоб додати користувачам головного болю) у SQL є ще кілька команд.
Як швидко видалити всі дані у таблиці? Скористайся оператором TRUNCATE
:
TRUNCATE TABLE таблиця
Одна помилка в назві таблиці — і кілька днів відновлення даних тобі забезпечені. Радій, що ти не адмін баз даних.
Якщо потрібно видалити не просто дані в таблиці, а й саму таблицю, для цього є оператор DROP
:
DROP TABLE таблиця
До речі, аналогічні варіанти існують і зі схемами баз даних. Якщо хочеш видалити саму базу, то:
DROP SCHEME база_даних
або:
DROP DATABASE база_даних
Також за допомогою DROP можна видаляти:
- EVENT
- FUNCTION
- PROCEDURE
- INDEX
- VIEW
- TRIGGER
І ось тобі кілька цікавих історій, пов'язаних із видаленням даних:
Провал дня. GitLab видалив 300 ГБ даних клієнтів через помилку сисадміну
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ