SQL記述難易度 基礎

この SQL はエラーになる。正しく直して書いてください。

SELECT * FROM emp WHEREdept = 'hr';

正答

正答SELECT * FROM emp WHERE dept = 'hr';

解説

WHERE と dept の間に空白がないと、SQLite は WHEREdept を 1 つの識別子として読む。FROM emp の後ろに名前が続く形なので表 emp の別名と解釈され、その後ろの = の位置で構文エラーになる。キーワードと列名の間には空白を 1 つ以上入れる。正しくは SELECT * FROM emp WHERE dept = 'hr'; で、E の行が返る。= の前後の空白は有無どちらでも動く。

参考: www.sqlite.org

typowhitespacewhere

この問題を含む SQL のテストを制限時間つきで解く

SQLクイズへ