Вставка данных из одной таблицы в другую в MS Access

Пройдите тест, узнайте какой профессии подходите
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для переноса записей из одной таблицы в другую, при соблюдении условия идентичности столбцов, используйте команду INSERT INTO SELECT. Это практичный инструмент SQL.

SQL
Скопировать код
-- Avada Kedavra! Заклинание для переноса данных.
INSERT INTO DeathEater_records (FirstName, LastName)
SELECT FirstName, LastName
FROM Hogwarts_students
WHERE BloodStatus = 'Pure-Blood';

В качестве целевого объекта выбирается DeathEater_records, источником данных служит Hogwarts_students, определяются названия столбцов и используется условие WHERE для выделения необходимых данных.

Следует обеспечить совпадение имен столбцов и типов данных, как LongIntColumn1 и CurrencyColumn2, во избежание ошибок. Тестирование запросов на случайных данных способно подтвердить их корректность.

Пошаговый план для смены профессии

Развернутое руководство по INSERT INTO SELECT

Агрегация данных

Если требуется сагрегировать данные при переносе, можно использовать группировку и функции:

SQL
Скопировать код
-- Доверяем Гринготтсу.
INSERT INTO MoneyManagement (AverageGalleons)
SELECT AVG(Galleons)
FROM GringottsVaults
GROUP BY VaultNumber;

Здесь AVG() и GROUP BY помогают рассчитывать среднее значение галлеонов для каждого хранилища перед добавлением данных в таблицу MoneyManagement.

Трансформация данных в процессе переноса

Данные могут быть трансформированы в ходе выполнения операции SELECT, используя псевдонимы и функции в выражении SELECT:

SQL
Скопировать код
-- Привет от профессора Макгонагалл.
INSERT INTO Minerva_FanClub (MemberName, EnrolmentDate)
SELECT StudentName, TO_CHAR(JoiningDate, 'YYYY-MM-DD')
FROM Hogwarts_database;

Функция TO_CHAR() адекватно преобразует дату для таблицы Minerva_FanClub.

Визуализация

Этот процесс похож на волшебное превращение спички (🪵) в иголку (🪡):

Классная комната (🏫): [Деревянная спичка 🪵]
Заклинание (🪄): Превращает 🪵 в 🪡
Блокнот мадам Пинс (📒): Срочно необходима иголка 🪡 для реставрации книг 📚

Произносим заклинание INSERT INTO:

SQL
Скопировать код
INSERT INTO MadamPince_notebook (FixingTools) 
  SELECT Tools FROM Classroom;

И вот что получается:

Markdown
Скопировать код
До произнесения заклинания: 🏫🪵  🪄  📒
После произнесения заклинания:  🏫    🪄  📒🪡 (Теперь можно производить реставрацию книг! 📚)

Распространенные ошибки и способы их устранения

Несовпадение типов данных

Необходимо следить за совпадением типов данных в исходной и приемной таблицах. В противном случае результат может быть неожиданным.

Учитывание ограничений

Ограничения в целевой таблице следует учитывать, поскольку при нарушении целостности данных могут возникнуть ошибки.

Обработка проблем с NULL

Проверьте обработку NULL-значений в исходных данных и готовность приемной таблицы принимать такие значения. При необходимости используйте функцию COALESCE для замещения NULL:

SQL
Скопировать код
-- NULL? Благодарю, но нет!
INSERT INTO OrderOfPhoenix (wizard, patronus)
SELECT wizard, COALESCE(patronus, 'Stag')
FROM Dumbledore_Army;

Полезные материалы

  1. SQL INSERT INTO SELECT Statement – Обстоятельное руководство по SQL INSERT INTO SELECT.
  2. Insert into ... values ( SELECT ... FROM ... ) – Stack Overflow – Обсуждение различных вариантов применения INSERT с SELECT.
  3. Different Options for Importing Data into SQL Server – Комплексный обзор различных способов импорта данных в SQL Server, включая INSERT INTO.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой SQL-командой можно перенести данные из одной таблицы в другую?
1 / 5