トークン

トークンは、SQL の基本構成単位です。 トークン は、1 つまたは複数の一連の文字です。

ブランク文字を使用しても構わないストリング定数または、区切り ID の場合を除いて、 トークンにブランク文字を使用することはできません。

トークンは、 通常トークンと区切り文字に分類されます。

  • 通常トークン とは、数値定数、通常 ID、ホスト ID、またはキーワードです。
       1        .1        +2        SELECT        E        3
  • 区切りトークン とは、ストリング定数、区切り ID、演算子記号、または構文図に示される特殊文字です。 パラメーター・マーカーとして機能する場合は疑問符も区切りトークンです。
       ,        'string'        "fld1"        =        .

スペース: スペースは、1 つまたは複数の一連のブランク文字です。 ストリング定数と区切り ID 以外のトークンには、スペースを使用することはできません。 トークンの後にはスペースを続けることができます。 すべての通常トークンの後には、スペースか、 または構文で許されているなら区切りトークンを付ける必要があります。

コメント: SQL コメントは、囲んで示している (/* で始まり、/* で終わる) か、単純 (2 つの連続するハイフンで始まり、行末で終わる) のいずれかです。静的 SQL ステートメントには、ホスト言語のコメントまたは SQL コメントを含めることができます。 コメントは、スペースを指定できる場所であればどこにでも指定可能ですが、 区切りトークンの中または EXEC と SQL キーワードの間には指定できません。

大文字小文字の区別: どのトークンにも小文字を使用することができますが、 通常トークンでの小文字は大文字に変換されます。 ただし、ID の大文字と小文字を区別する C 言語のホスト変数は例外です。 区切りトークンが大文字に変換されることはありません。 したがって、次のステートメントは、
   select * from EMPLOYEE where lastname = 'Smith';
大文字に変換した後は、以下のステートメントと同等になります。
   SELECT * FROM EMPLOYEE WHERE LASTNAME = 'Smith';

マルチバイトの英文字は大文字変換されません。 1 バイト文字 (a から z) は大文字に変換されます

Unicode 文字の場合:
  • UTF-8 での大文字が、UTF-8 での小文字と同じ長さであれば、適用可能な場合、文字は大文字変換されます。 例えば、トルコ語の小文字のドットのない 'i' は、UTF-8 における値が X'C4B1' ですが、ドットのない大文字の 'I' の UTF-8 における値が X'49' なので、変換されません。
  • 大文字への変換は、ロケールに配慮しない方法で行われます。 例えば、トルコ語の、ドットのある小文字の 'i' は、英語の (ドットのない) 大文字の 'I' に変換されます。
  • 半角のアルファベットも全角のアルファベットも両方大文字に変換されます。 例えば、全角小文字の 'a' (U+FF41) は、全角大文字の 'A' (U+FF21) に変換されます。