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 від 31.01.2017
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ