English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL Очистка таблицы (TRUNCATE TABLE предложение)

В этом руководстве вы узнаете, как быстро удалить все строки из таблицы с помощью SQL.

удалению данных таблицы

предложение TRUNCATE TABLE быстрее удаляет все строки из таблицы, чем DELETE. С точки зрения логики, TRUNCATE TABLE подобноDELETEнетWHEREпродолжение предложений.

Предложение TRUNCATE TABLE удаляет все строки из таблицы, но структура таблицы и её столбцы, ограничения, индексы и т.д. сохраняются. Чтобы удалить таблицу и её данные, можно использовать этоDROP TABLEпроделать, но будьте осторожны.

Грамматика

Основная грамматика TRUNCATE TABLE:

TRUNCATE TABLE table_name;

дайте нам выполнить операцию по очистке таблицы базы данных.

рассмотрим, что у нас естьemployeeтаблица, содержащая следующие записи:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

Следующие команды извлекутemployeesудалить все строки из таблицы:

TRUNCATE TABLE employees;

Теперь, после выполнения вышеуказанных SQL-запросов, если попытаться извлечьemployeeв таблицевыбор записейвсегда будет возвращаться пустой результат.

TRUNCATE TABLE vs DELETE

Хотя DELETE и TRUNCATE TABLE кажутся имеющими одинаковый эффект, их способ работы различается. Вот некоторые основные различия между этими двумя предложениями:

  • Запрос TRUNCATE TABLE удаляет и заново создает таблицу, и сбрасывает любые автоматические значения прироста до их начальных значений (обычно 1).

  • DELETE позволяет фильтровать строки для удаления с помощью опционального подзапроса WHERE, в то время как TRUNCATE TABLE не поддерживает подзапрос WHERE и удаляет все строки.

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

Совет:Если вы хотите удалить все строки и заново создать всю таблицу, используйте TRUNCATE TABLE. Если вы хотите удалить ограниченное количество строк на основе определённых условий или не хотите сбрасывать автоматический прирост, используйте DELETE.