Команда SELECT INTO используется для копирования записей из одной таблицы в новую таблицу. Данная команда создает именно новую таблицу. Если в базе данных уже есть таблица с таким именем, то SQL выдаст ошибку. Например:
1 2 3 |
SELECT * INTO CustomersCopy FROM Customers; |
Здесь мы копируем все данные из таблицы Customers в новую таблицу CustomersCopy.
Примечание: Если нужно скопировать данные в существующую таблицу (а не создавать новую таблицу), следует использовать команду INSERT INTO SELECT.
Скопировать только выбранные столбцы
Можно скопировать только выбранные столбцы из старой таблицы в новую. Например:
1 2 3 |
SELECT customer_id, country INTO CustomersCopy FROM Customers; |
Здесь мы копируем только столбцы customer_id и country в таблицу CustomersCopy.
Скопировать данные, соответствующие условию
Мы можем использовать оператор WHERE с SELECT INTO
для копирования тех строк, которые соответствуют указанному условию. Например:
1 2 3 4 |
SELECT customer_id, age INTO JapanCustomersAge FROM Customers WHERE country = 'Japan'; |
Здесь мы создаем таблицу JapanCustomersAge со столбцами customer_id и age, а затем копируем строки в новую таблицу, если значением столбца country является Japan
.
Скопировать данные в другую базу данных
По умолчанию SELECT INTO
создает новую таблицу в текущей базе данных. Если нужно скопировать данные в таблицу в другой базе данных, следует использовать оператор IN. Например:
1 2 3 4 |
SELECT * INTO CustomersCopy IN another_db.mdb FROM Customers; |
Здесь мы копируем таблицу Customers в таблицу CustomersCopy в базе данных another_db.mdb.
Примечание: Пользователь должен иметь права на WRITE для копирования данных в таблицу другой базы данных.
Скопировать данные из двух таблиц в одну
Можно скопировать данные из двух разных таблиц в новую таблицу, используя оператор JOIN с SELECT INTO
. Например:
1 2 3 4 5 |
SELECT Customers.customer_id, Customers.first_name, Orders.amount INTO CustomerOrders FROM Customers JOIN Orders ON Customers.customer_id = Orders.customer_id; |
Здесь мы копируем customer_id и first_name из таблицы Customers и amount из таблицы Orders в новую таблицу CustomerOrders.
Скопировать только структуру таблицы
Мы также можем использовать оператор SELECT INTO
для создания новой таблицы с заданной структурой (без копирования данных). Для этого следует использовать оператор WHERE
со значением false
.
1 2 3 4 |
SELECT * INTO NewCustomers FROM Customers WHERE false; |
Здесь мы создаем пустую таблицу с именем NewCustomers с той же структурой, которую имеет таблица Customers.