データベース
2025年1月1日より前のデータをordersテーブルからarchive_ordersテーブルにコピーするSQL文として正しいものはどれか。
ア.INSERT INTO archive_orders SELECT * FROM orders WHERE order_date < '2025-01-01'正解
イ.INSERT INTO archive_orders VALUES (SELECT * FROM orders WHERE order_date < '2025-01-01')
ウ.COPY INTO archive_orders FROM orders WHERE order_date < '2025-01-01'
エ.INSERT archive_orders SELECT * FROM orders WHERE order_date < '2025-01-01'
解説
INSERT INTO ... SELECT は「コピー機能付きの転記」。SELECT結果をそのまま別テーブルに挿入できる。
なぜ ア が正解か
INSERT INTO archive_orders SELECT * FROM orders WHERE order_date < '2025-01-01' が正しい構文。INSERT INTO テーブル名 の後にSELECT文を続けることで、SELECTの結果をそのまま挿入できる。
出典: AI生成問題(学習用)