SQL DROP TABLE

DROP TABLE и DROP DATABASE в SQL: полное и необратимое удаление таблицы или базы данных — синтаксис, примеры и меры предосторожности.

DROP — это DDL-оператор (язык определения данных), который удаляет объект базы данных вместе с его структурой. В отличие от DELETE или TRUNCATE, после DROP таблица перестаёт существовать полностью.

Синтаксис

-- Удалить одну таблицу
DROP TABLE имя_таблицы;

-- Удалить несколько таблиц за один оператор
DROP TABLE таблица1, таблица2;

-- Удалить базу данных целиком
DROP DATABASE имя_бд;

Пример 1: DROP TABLE — создаём и удаляем

Создадим временную таблицу и удалим её, убедившись, что после DROP она исчезла:

-- Создаём таблицу
CREATE TABLE temp_test (
    id   INTEGER PRIMARY KEY,
    note TEXT
);

INSERT INTO temp_test VALUES (1, 'test data');

-- Проверяем: таблица есть
SELECT * FROM temp_test;

-- Удаляем навсегда
DROP TABLE temp_test;

-- Следующий SELECT вернёт ошибку — таблицы больше нет
-- SELECT * FROM temp_test;  -- ERROR: no such table

Результат SELECT до DROP:

+----+-----------+
| id | note      |
+----+-----------+
|  1 | test data |
+----+-----------+

Пример 2: DROP TABLE IF EXISTS

Если таблица может уже не существовать — используйте IF EXISTS, чтобы избежать ошибки:

DROP TABLE IF EXISTS temp_test;
-- Если таблицы нет — просто ничего не произойдёт, ошибки не будет

Пример 3: DROP DATABASE

-- Удалить всю базу данных со всеми таблицами внутри
DROP DATABASE demo;

Предупреждение. DROP DATABASE удаляет все таблицы, данные, представления и индексы внутри базы. Операция необратима — система не спросит «вы уверены?». Используйте только тогда, когда осознанно хотите уничтожить всю базу.

DROP vs DELETE vs TRUNCATE

Оператор

Что удаляет

Структура таблицы

Обратимо?

DELETE

Выбранные строки

Остаётся

Да (в транзакции)

TRUNCATE

Все строки

Остаётся

Зависит от СУБД

DROP TABLE

Таблицу целиком

Уничтожается

Нет

DROP DATABASE

Всю базу данных

Уничтожается

Нет

Коротко

  • DROP TABLE необратимо удаляет таблицу вместе с данными и структурой.
  • DROP TABLE IF EXISTS — безопасная форма: не ошибётся, если таблица уже удалена.
  • DROP DATABASE уничтожает всю базу данных целиком.
  • Перед DROP убедитесь, что данные больше не нужны — отката нет.
Проверьте себя
1. Что происходит при выполнении DROP TABLE persons?
AУдаляются все данные, но структура таблицы сохраняется
BТаблица временно скрывается и может быть восстановлена
CУдаляется только первичный ключ таблицы
DТаблица навсегда удаляется вместе со всеми данными и метаданными
2. Как удалить сразу несколько таблицы — orders и items — одной командой?
ADROP TABLE orders; DROP TABLE items;
BDROP TABLES orders, items;
CDELETE TABLE orders AND items;
DDROP TABLE orders, items;
3. Что вернёт SELECT * FROM persons после выполнения DROP TABLE persons?
AПустой результат — таблица существует, но без данных
BОшибку — таблица persons не существует
CNULL для всех столбцов
DСтруктуру таблицы без данных
4. Какой командой удалить всю базу данных demo?
ADELETE DATABASE demo;
BREMOVE DATABASE demo;
CDROP DATABASE demo;
DTRUNCATE DATABASE demo;