Базовый курс мы закончили на том, что рассмотрели команду удаления данных. Чтобы удалить все данные из таблицы с помощью DELETE можно выполнить команду:
DELETE FROM имя_таблицы
Так как мы не указали WHERE и ничего не ограничиваем, то удалится все. В принципе этот вариант работает, но есть вариант чуть быстрее, если вы хотите очистить все, это использовать команду:
truncate table имя_таблицы
Этой команде не нужно указывать WHERE, потому что она как раз предназначена для того, чтобы удалять все и у нее два основных отличия:
1. Он работает быстрее
2. Номера для автоматически увеличиваемых полей начнутся с начала. При удалении с помощью DELETE номера продолжаться.
Можно попробовать выполнить этот запрос прямо на одной из таблиц, которые у нас уже есть, но мы потеряем тогда данные, которые еще могут пригодиться. Давайте создадим копию существующей таблицы. Мы можем использовать один из запросов, который мы выполняли при создании таблицы и можем накидать туда данные, но для быстрых резервных копий данных есть подход проще. В MySQL это:
create table teamcopy select * from team;
Мы создаем здесь таблицу teamcopy, но вместо указания структуры данных идет select запрос и именно на результатах этого запроса будет создана новая таблица. То есть можно сказать, что выполняется select запрос, и для результата создается таблица с именем teamcopy и туда помещаются данные запроса.
Можно выбирать не все данные, а только определенные колонки:
create table teamcopy select name from team;
В результате этого запроса будет создана таблица teamcopy только с одной колонкой name.
В MS SQL для создания копии используется немного другой вариант:
select * into teamcopy from team;
Вот эту таблицу не жалко, поэтому в ней можно убить все данные. Можете выполнить:
truncate table teamcopy
Чтобы убедиться, что этот запрос уничтожает все данные.