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

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