SQL SELECT INTOИнструкции
С помощью SQL можно копировать информацию из одной таблицы в другую.
Инструкция SELECT INTO копирует данные из одной таблицы и вставляет их в другую новую таблицу.
Оператор SQL SELECT INTO
Инструкция SELECT INTO копирует данные из одной таблицы и вставляет их в другую новую таблицу.
Примечание:
База данных MySQL не поддерживает инструкцию SELECT ... INTO, но поддерживаетINSERT INTO ... SELECT 。
Конечно, вы можете использовать следующую инструкцию, чтобы скопировать структуру таблицы и данные:
CREATE TABLE 新表 AS SELECT * FROM 旧表
Синтаксис SQL SELECT INTO
Предположим, есть таблица с именем employees, содержащая следующие данные:
| EmployeeID | FirstName | LastName | Age | Отдел |
|---|---|---|---|---|
| 1 | Джон | Доу | 30 | Sales |
| 2 | Джейн | Смит | 25 | HR |
| 3 | Сэм | Коричневый | 28 | ИТ |
Чтобы создать новую таблицу с именемemployees_backupи вставитьemployeesвсе данные из таблицы в новую таблицу, можно использовать следующий оператор SQL:
SELECT * INTO employees_backup FROM employees;
После выполнения этого оператора новаяemployees_backupтаблица будет содержать только данные сотрудников старше 25 лет.
SELECT EmployeeID, FirstName, LastName, Age, Department INTO employees_backup FROM employees WHERE Age > 25;
Примечания по использованию
Структура таблицы:
SELECT INTOсоздаст новую таблицу, и структура новой таблицы будет основана на выбранных столбцах и типах данных.- Если новая таблица уже существует,
SELECT INTOоператор завершится ошибкой. В этом случае можно использоватьINSERT INTO ... SELECTоператор.
Поддержка баз данных:
SELECT INTOЭтот оператор очень распространён в SQL Server, но в MySQL и PostgreSQL обычно используетсяCREATE TABLE ... AS SELECTоператор.
Альтернативы в других базах данных
MySQL и PostgreSQL
В MySQL и PostgreSQL можно использоватьCREATE TABLE ... AS SELECTдля достижения аналогичной функциональности:
CREATE TABLE employees_backup AS SELECT EmployeeID, FirstName, LastName, Age, Department FROM employees WHERE Age > 25;Другие расширения