今回は、Silverの「S3 開発/SQL - S3.1 SQL コマンド(INSERT/UPDATE/DELETE文)」からの出題です。
INSERT INTO tablex SELECT * FROM tabley;
INSERT INTO tablex (id, val) SELECT foo, bar FROM tabley;
INSERT INTO tablex (id, val) VALUES SELECT foo, bar FROM tabley;
INSERT INTO tablex FROM tabley WHERE id = foo AND val = bar;
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2014年7月3日
INSERT文でよく使われる形式は
INSERT INTO テーブル名 (列名リスト) VALUES (値リスト);
および
INSERT INTO テーブル名 (列名リスト) SELECT文
です。
列名リストは省略することができて、この場合、INSERT先のテーブルのすべての列がテーブル定義時の順番に従って指定されたとみなされます。文法的にはOKですが、習慣としては必ず列リストを指定するようにした方が良いでしょう。
INSERTするデータを値リストの形式で指定するときはVALUES句を使いますが、SELECT文で指定するときは、VALUESと書くとエラーになります。
従って正解はBとCです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.