НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
25 of 150 menu

Команда INSERT ... SELECT

Команда INSERT ... SELECT используется для вставки данных в таблицу на основе результата запроса SELECT. Позволяет копировать, переносить и трансформировать данные между таблицами без явного перечисления значений.

Синтаксис

INSERT INTO target_table (column_list) SELECT column_list FROM source_table WHERE condition

Таблицы для примеров

employees
id name salary active
1 Ivan 40000 1
2 Petr 45000 1
3 Sergey 42000 0
4 Olga 55000 1
employees_archive
id name salary

Пример

Давайте вставим в архивную таблицу только активных сотрудников из основной таблицы:

INSERT INTO employees_archive (id, name, salary) SELECT id, name, salary FROM employees WHERE active = 1

Результат выполнения кода:

employees_archive
id name salary
1 Ivan 40000
2 Petr 45000
4 Olga 55000

Пример

Давайте при вставке преобразуем данные, увеличив зарплату на фиксированное значение:

INSERT INTO employees_archive (id, name, salary) SELECT id, name, salary + 5000 FROM employees WHERE active = 1

Результат выполнения кода:

employees_archive
id name salary
1 Ivan 45000
2 Petr 50000
4 Olga 60000

Смотрите также

  • команду INSERT,
    которая добавляет записи
  • команду SELECT,
    которая формирует источник данных
  • команду WHERE,
    которая фильтрует вставляемые строки
  • конструкцию ON DUPLICATE KEY UPDATE,
    которая обновляет при конфликте ключа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить