今回は、Silverの「S3 開発/SQL - S3.1 SQL コマンド(INSERT文)」からの出題です。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2019年1月29日
テーブルへの行の挿入(追加)にはINSERT文を使用しますが、このとき挿入されるデータはVALUESあるいはSELECTによって指定します。
VALUESを使う場合、各列の値をカンマで区切り、カッコで括ったリストの形式でデータを指定しますが、このようなリストをカンマで区切って複数並べることで、複数行のデータをまとめて挿入することができます。
例題のSQLでは、最初にテーブルfooを作成し、次のINSERTで3行のデータを挿入しています。
最後のSQLでも3行のデータを挿入しようとしていますが、ここでテーブルの定義とデータの内容に注意する必要があります。例題のCREATE
TABLEではid列を主キー(PRIMARY KEY)に指定しているため、id列では値が重複するデータを持つことができません。
最初のINSERTでid=3の行を挿入し、次のINSERTでもid=3のデータを挿入しようとしているため、2つ目のSQLがエラーになります。
2つ目のSQLは3行のデータを挿入しようとしており、id=4および5のデータについてはエラーがありませんが、このINSERT文自体がエラーとされるため、1行もデータが挿入されません。すなわち、テーブルfooには1つ目のINSERTで挿入された3行のデータだけが残ります。
したがって正解は3行です。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.