Перейти к основному контенту

Как очистить таблицу в MySQL

В статье мы расскажем, как в MySQL очистить таблицу. Мы покажем два способа и объясним разницу между ними.

Очистить таблицу можно при помощи одной из команд:

  • TRUNCATE,
  • DELETE.

Разница между TRUNCATE и DELETE

Команда TRUNCATE является оператором DDL. DDL (Data Definition Language) — это язык определения данных. Операторы языка DDL управляют объектами баз данных: удаляют, создают или переименовывают объекты БД.

Пример команды TRUNCATE

Команда DELETE является DML-оператором. DML (Data Manipulation Language) — это язык манипуляции данными. Операторы языка DML позволяют вставить, удалить, изменить, извлечь или обновить данные в базе.

Пример команды DELETE

Сравним работу команд:

TRUNCATEDELETE
Удаляет все данные из таблицыМожет удалить часть данных в соответствии с условием WHERE
Удаляет все строки из таблицы освобождением страницУдаляет строки по одной
Записывает в журнал транзакций сведения о каждой удалённой странице, а не строкеДелает запись в журнал транзакций при удалении каждой строки
Работает быстрееРаботает медленнее
Нужны привилегии ALTERНужны привилегии DELETE
Сбрасывает идентификаторыНе сбрасывает идентификаторы
Блокирует таблицу и страницу перед удалениемБлокирует строку перед её удалением

Выбор команды зависит от конкретного случая. Если нужно удалить некоторые строки по условию, подойдёт только DELETE. Если нужно полностью очистить таблицу и сбросить идентификаторы, используйте TRUNCATE.

Понять разницу между командами и определиться с их выбором поможет таблица с операторами каждого языка:

DDLDML
CREATESELECT
ALTERINSERT
DROPUPDATE
TRUNCATEDELETE
COMMENTMERGE
RENAMECALL
EXPLAIN PLAN
LOCK TABLE

Таким образом, операторы DDL управляют структурой, а операторы DML — её содержимым.

Как в MySQL очистить таблицу

Подключитесь к серверу по SSH. Затем подключитесь к MySQL при помощи команды:

mysql -u username -p’password’

Вместо username введите имя пользователя, вместо password — пароль.

Если вы не знаете пароль, попробуйте войти без него при помощи команды:

mysql

Если подключение без пароля не настроено, возникнет ошибка:

Ошибка при подключении к серверу MySQL

В этом случае сбросьте пароль от root-пользователя MySQL по инструкции.

TRUNCATE

TRUNCATE полностью очищает таблицу без возможности указать дополнительные условия. Для этого:

  1. 1.

    Выберите базу данных, в которой находится таблица, которую вы хотите очистить:

    USE db_name;

    Вместо db_name введите имя базы данных.

  2. 2.

    Очистите таблицу при помощи команды:

    TRUNCATE table_name;

    TRUNCATE позволяет указать название БД и название таблицы в одном запросе. Для этого используйте команду:

    TRUNCATE db_name.table_name;

    Вместо db_name введите имя базы данных, а вместо table_name введите имя таблицы.

Готово, вы очистили таблицу.

DELETE

  1. 1.

    Выберите базу данных, в которой находится таблица, которую вы хотите очистить:

    USE db_name;

    Вместо db_name введите имя базы данных.

  2. 2.

    Очистите таблицу при помощи команды:

    DELETE FROM table_name;

    Вы можете указать название БД и таблицы в одном запросе:

    DELETE FROM db_name.table_name;

    Вместо db_name введите имя базы данных, а вместо table_name введите имя таблицы.

Готово, вы очистили таблицу при помощи DELETE.

Совет

DELETE позволяет использовать условие WHERE, чтобы удалить некоторые строки из таблицы:

DELETE FROM table_name WHERE condition;

Где condition — это условие.

Пример команды, в котором будут удалены все строки, значение столбца, id которых больше 1000:

DELETE FROM table_name WHERE id > 1000;

Как проверить содержимое таблицы

Если вы хотите убедиться, что в таблице не осталось данных, воспользуйтесь командой:

SELECT * FROM db_name.table_name;

Вместо db_name введите имя базы данных, а вместо table_name введите имя таблицы.

Если таблица пустая, вывод будет следующим:

Проверка содержимого таблицы MySQL при помощи SELECT FROM

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0