Купить Корзина
  • Домены, почта и сайты
  • Сервисы для бизнеса
  • Облако и IT-инфраструктура
  • Вход
  • Телефон в Москве

    +7 495 580-11-11
  • Бесплатный звонок по России

    8 800 555-34-78
  • Или обратитесь в наши офисы

    Региональные номера
    1. База знаний
    2. Хостинг
    3. Базы данных
    4. Как очистить таблицу в MySQL

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

    MySQL — это популярная система управления реляционными базами данных (СУБД) с открытым исходным кодом. Она использует язык SQL для управления данными и широко применяется в веб-разработке, аналитике и других областях, где требуется надежное хранение и обработка структурированной информации.

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

    Что такое таблицы MySQL

    Таблицы в MySQL — это основные структурные элементы базы данных, которые хранят информацию в упорядоченном виде. Каждая таблица состоит из столбцов и строк. Столбцы определяют тип данных: текст, числа, даты, а строки содержат конкретные значения. Таблицы позволяют организовывать данные логически и эффективно управлять ими с помощью SQL-запросов.

    Для чего нужна очистка таблицы MySQL

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

    • удаление устаревших или ненужных данных;

    • сброс тестовых данных после завершения тестирования;

    • подготовка таблицы к импорту новых данных;

    • освобождение дискового пространства;

    • сброс автоинкрементных идентификаторов;

    • очистка временных или кэшированных данных.

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

    • TRUNCATE,
    • DELETE.

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

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

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

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

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

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

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

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

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

    DDL
    DML
    CREATE
    SELECT
    ALTER
    INSERT
    DROP
    UPDATE
    TRUNCATE
    DELETE
    COMMENT
    MERGE
    RENAME
    CALL
    EXPLAIN PLAN
    LOCK TABLE

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

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

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

    mysql -u username -p’password’

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

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

    mysql

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

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

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

    TRUNCATE

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

    • 1

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

      USE db_name;

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

    • 2

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

      TRUNCATE table_name;

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

      TRUNCATE db_name.table_name;

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

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

    DELETE

    • 1

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

      USE db_name;

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

    • 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

    Частые вопросы

    Чем команда TRUNCATE отличается от команды DELETE?

    TRUNCATE — это оператор DDL, который быстро удаляет все строки из таблицы, сбрасывает сбрасывает нумерацию записей и не запускает дополнительные скрипты. DELETE — это оператор DML, который удаляет строки одну за другой, позволяет использовать условия WHERE, запускает связанные скрипты и может быть отменен.

    Что такое транзакция в MySQL?
    Транзакция — это последовательность операций с базой данных, которая выполняется как единое целое. Транзакции обеспечивают целостность данных через принцип ACID (атомарность, согласованность, изоляция, долговечность). Операции внутри транзакции либо выполняются все, либо не выполняются вообще.
    Как удалить только часть данных?

    Для удаления только части данных используйте команду DELETE с условием WHERE:

    DELETE FROM название_таблицы WHERE название_столбца = 'значение'
    Как создать резервную копию перед очисткой?

    Способ 1 — экспорт в файл:

    mysqldump -u имя_пользователя -p название_базы название_таблицы > резервная_копия.sql

    Вместо имя _ пользователя, название_базы, название_таблицы и резервная_копия.sql подставьте свои значения.

    Способ 2 — создать копию таблицы прямо в БД:

    CREATE TABLE название_таблицы_копия SELECT * FROM название_таблицы

    Вместо название_таблицы, название_таблицы_копия подставьте свои значения.

    Как очистить несколько таблиц?

    Способ 1 — последовательно:

    TRUNCATE таблица_1;
    TRUNCATE таблица_2;
    TRUNCATE таблица_3;

    Способ 2 — отключить проверку связей (если таблицы связаны):

    SET FOREIGN_KEY_CHECKS = 0;
    TRUNCATE таблица_1;
    TRUNCATE таблица_2;
    TRUNCATE таблица_3;
    SET FOREIGN_KEY_CHECKS = 1;

    Способ 3 — с условием (если нужно удалить не всё):

    DELETE FROM заказы WHERE год = 2025;
    DELETE FROM клиенты WHERE статус = 'неактивный';
    DELETE FROM товары WHERE остаток = 0;

    Вместо таблица_1, таблица_2, таблица_3, заказы, клиенты, товары и условий подставьте свои названия таблиц и условия.

    Помогла ли вам статья?

    Спасибо за оценку. Рады помочь 😊

     👍
    Специальные предложения
    • Гранты для бизнеса до 500к
    • Скидки на cloud GPU до 50%
    • Скидки на bare-metal с А4000 и А5000
    • Кешбэк 100% на kubernetes
    Рассылка Рег.ру

    Лайфхаки, скидки и новости об IT

    Даю согласие на получение рекламных и информационных материалов

    Домены и сайты
    • Домены
    • Хостинг
    • Создание сайтов
    • SSL-сертификаты
    • VPS и VDS серверы
    • Whois
    • Магазин доменов
    Облако
    и IT-инфраструктура
    • Облачные серверы
    • Частное облако
    • Облачное хранилище
    • Kubernetes в облаке (K8S)
    • Облачные базы данных
    • Выделенные серверы
    Полезное
    • Стоимость услуг
    • Cпособы оплаты
    • База знаний
    • Документы
    • ЭДО
    • Партнерам
    • Сообщить о нарушении
    • РБК: новости России и мира сегодня
    • Новости компаний РФ
    • РБК Инвестиции: курсы валют
    • Рег.решения и Онлайн Патент: бесплатная проверка бренда
    Компания
    • О компании
    • Контакты
    • Офисы
    • Новости
    • Акции и скидки
    • Блог
    • Отзывы клиентов
    8 800 555-34-78 Бесплатный звонок по России
    +7 495 580-11-11 Телефон в Москве
    • vk
    • telegram
    • ok
    • moikrug
    • youtube
    • twitter
    • Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024
    • © ООО «РЕГ.РУ»
    • Политика конфиденциальности
      Политика обработки персональных данных
      Правила применения рекомендательных технологий
      Правила пользования
      и другие правила и политики
    • Нашли опечатку?
      Выделите и нажмите Ctrl+Enter
    • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера