Мы опустили на время секцию INTO, которая идет после SELECT, и позволяет создавать новые таблицы. Это упущение было сделано преднамеренно, чтобы сначала научиться писать запросы на выбору и немного познакомится с секцией WHERE. Теперь, примеры с секцией были INTO будут более интересными, и вы увидите ее мощь и удобство.
Допустим, что нам надо сохранить строки всех Андреев в отдельной таблице для дальнейшего использования. Для этого выполняем следующий запрос:
SELECT * INTO tbAndrey FROM tbPeoples WHERE vcName='Андрей'
В данном примере создается таблица tbAndrey. Ее не должно существовать, иначе создание будет невозможным. Если такая таблица будет существовать в вашей базе данных, то запрос вернет ошибку, потому что SELECT..INTO не умеет перезаписывать таблицы. Вы должны сами удалять не нужное, гарантируя таким образом, что нужная таблица не будет уничтожена (перезаписана).
Преимущество запроса типа SELECT..INTO в том, что не надо создавать вручную таблицу с нужными полями, все делается автоматически.
Теперь мы можем без проблем работать с новой таблицей tbAndrey, потому что она ничем не отличается от всех тех, что мы создали с помощью оператора CREATE TABLE:SELECT * FROM tbAndrey
Оператор SELECT..INTO чаще всего используют для создания временных таблиц, а не постоянных, например, при создании отчетности. Напоминаю, что для создания временной таблицы, необходимо указать символ # вначале имени:
SELECT * INTO #tbAndrey FROM tbPeoples WHERE vcName='Андрей'
Для хранения постоянных данных, лучше использовать CREATE TABLE и настраивать поля и ограничения на таблицу должным образом. При использовании SELECT..INTO ограничения не переносятся, только данные и структура таблицы.