SQL4 択難易度 基礎

名前が Alice の行を取りたい。正しく直したものは?

SELECT id FROM users WHERE name = Alice;

正答

  1. SELECT id FROM users WHERE name = "Alice";
  2. SELECT id FROM users WHERE name = 'alice';
  3. SELECT id FROM users WHERE name = (Alice);
  4. SELECT id FROM users WHERE name = 'Alice';

解説

引用符の無い Alice は列名と解釈され、そんな列は無いのでエラーになる。文字列リテラルはシングルクォートで囲む。選択肢 1 のダブルクォートは標準 SQL では識別子(列名)を囲む記号で、文字列には使わない。選択肢 2 の 'alice' は引用符は正しいが、= の比較は大文字小文字を区別するため Alice とは一致しない。括弧で囲んでも列名扱いは変わらない。

参考: www.sqlite.org

quotestring-literal

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

SQLクイズへ