Что сделает запрос INSERT INTO archive (order_id, amount, status) SELECT order_id, amount, status FROM orders WHERE status = 'completed'?

AЗапрос вставит в archive только те столбцы из orders, которые совпадают по имени, без применения фильтра WHERE
BЗапрос вызовет ошибку, потому что INSERT INTO и SELECT нельзя комбинировать в одной инструкции INSERT INTO ... SELECT
CЗапрос вставит в archive только заказы со статусом 'completed' из таблицы orders в указанные столбцы
DЗапрос скопирует все строки из orders в archive без применения условия WHERE status = 'completed' к источнику
Правильный ответ. INSERT INTO ... SELECT копирует результат запроса SELECT в указанную таблицу.

Разбор

Конструкция INSERT INTO ... SELECT берёт результат выборки и вставляет его в целевую таблицу. Здесь SELECT фильтрует заказы со статусом 'completed' и выбирает три столбца. Эти строки вставляются в таблицу archive в указанные столбцы. Условие WHERE применяется к исходным данным, поэтому копируются не все заказы, а только завершённые.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

Ещё вопросы по теме «Основы SQL-запросов»