Команда 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.
