今回は、Silverの「S3 開発/SQL - S3.1 SQL コマンド(DELETE文)」からの出題です。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2021年8月25日
DELETE文の標準的な形式は
DELETE FROM テーブル名 WHERE 条件式
ですが、このDELETEを SELECT * に置き換えたとき、つまり
SELECT * FROM テーブル名 WHERE 条件式
を実行したときに表示される行が削除される、と考えるとわかりやすいでしょう。
例題のDELETE文にはWHERE句がありませんが、これはSQLの構文としては問題ありません。
SELECT * FROM テーブル名
を実行したら、指定したテーブルに存在するすべての行が表示されますよね。ですから、DELETE FROM テーブル名
を実行すると、テーブル内のすべての行が削除されます。危険なコマンドなので、警告や確認ダイアログが表示されたらありがたいと思うかもしれませんが、SQLにはそんな機能はありません。
したがって正解はDです。
なお、本当にテーブルを空にしたいときは、DELETE よりも TRUNCATE の方が高速に実行できます。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.