Россия и Беларусь начали и продолжают войну против целого народа Украины!

INSERT INTO SELECT в SQL

  Юрий  | 

  |

  Обновл. 9 Фев 2023  | 

 138

Команда INSERT INTO SELECT используется для копирования записей из одной таблицы в другую существующую таблицу. Например:

Здесь мы копируем все записи из таблицы Customers в таблицу OldCustomers.

Примечание: Чтобы запустить SQL-запрос выше, в базе данных уже должна быть таблица с именем OldCustomers, а имена столбцов таблицы OldCustomers и таблицы Customers должны совпадать. Если нужно скопировать данные в новую таблицу (а не в существующую), следует использовать команду SELECT INTO.

Cкопировать только выбранные столбцы

Мы также можем скопировать только выбранные столбцы из одной таблицы в другую. Например:

Здесь мы копируем данные только из столбцов customer_id и age в таблицу OldCustomers.

Примечание: Если в таблице OldCustomers, кроме customer_id и age, есть другие столбцы, то значениями этих столбцов будет NULL.

Cкопировать данные, соответствующие условию


Мы можем использовать оператор WHERE с INSERT INTO для копирования тех строк, которые соответствуют указанному условию. Например:

Здесь мы копируем все строки из таблицы Customers, где значением столбца country является USA, в таблицу OldCustomers.

Cкопировать данные из двух таблиц в одну

Можно скопировать данные из двух разных таблиц в одну, используя оператор JOIN с INSERT INTO SELECT. Например:

Здесь мы копируем customer_id и first_name из таблицы Customers и amount из таблицы Orders в существующую таблицу OldCustomerOrders.

Примечание: Если в существующей таблице уже есть данные, то будут добавлены новые строки. Столбцы в существующей таблице могут бросать такие ошибки, как NOT NULL Constraint Fail, UNIQUE Constraint Failed при копировании данных.

Избегайте дублирования данных в INSERT INTO SELECT


Если уже есть строка с похожим значением, SQL может выдать ошибку при использовании команды INSERT INTO SELECT. Однако мы можем пропустить копирование повторяющихся строк, используя оператор NOT EXISTS. Например:

Здесь мы скопируем строку в таблицу только в том случае, если customer_id в таблице не имеет такое же значение, которое мы пытаемся скопировать.

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (1 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *