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 ГБ даних клієнтів через помилку сисадміну

Кремнієва Долина "Silicon Valley" — Видалення даних