トークン

言語の基本的な構文単位のことを、トークン と呼びます。 1 つのトークンは、1 つ以上の文字から構成されます。ただし、この文字にはブランクや制御文字は入りません。また、ストリング定数または区切り文字付き ID 内の文字も除きます。(これらの用語については後述します。)

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

  • 通常トークン とは、数値定数、通常 ID、ホスト ID、またはキーワードです。

        1        .1        +2        SELECT        E        3
  • 区切りトークン とは、ストリング定数、区切り文字付き ID、演算記号、または構文図に示される任意の特殊文字を指します。疑問符 (?) も、PREPAREで説明しているようなパラメーター・マーカーとして使用される場合は、区切りトークンとなります。

        ,      'Myst Island'        "fld1"        =        .

スペース:

スペース は、1 つ以上のブランク文字を並べたものです。

制御文字:

制御文字 は、ストリングの位置合わせに使用される特殊文字です。 次の表は、データベース・マネージャーが取り扱う制御文字を示しています。

表 1. 制御文字
制御文字 EBCDIC 16 進値 UTF-8 の 16 進値 UCS-2 および UTF-16 の 16 進値
タブ 05 09 U+0009
用紙送り 0C 0C U+000C
復帰 0D 0D U+000D
改行 15 C285 U+0085
行送り (改行) 25 0A U+000A
DBCS スペース U+3000

ストリング定数および特定の区切り文字付き ID 以外のトークンには、制御文字またはスペースを含めてはなりません。 制御文字またはスペースは、トークンの後ろに続けることができます。 区切りトークン、制御文字、またはスペースが、すべての通常トークンの後に続かなければなりません。 構文上、通常トークンの後に区切りトークンを続けることが許されない場合には、その通常トークンの後に制御文字またはスペースを続ける必要があります。 ここで述べた規則について、以下に例を示します。

上記の通常トークンをいくつか組み合わせると、トークンが事実上変化して しまいます。その例を次に示します。

   1.1        .1+2        SELECTE        .1E        E3        SELECT1

このため、通常トークンの後には必ず区切りトークンまたはスペースを置かなければなりません。

上記の通常トークンと区切りトークンを組み合わせると、トークンが事実上変化してしまうことがあります。この例を次に示します。

   1.        .3

名前の修飾でピリオド (.) を 区切り記号として使用すると、そのピリオド は区切りトークンになります。上記の例では、ピリオドを通常トークンの数値定数と組み合わせて使用しています。 このため、通常トークンの後に区切りトークンを置くことは構文上許されません。 このような場合は、通常トークンの後に、区切りトークンではなくスペースを置かなければなりません。

小数点で説明するように、小数点がコンマとして定義されている場合は、コンマが数値定数の小数点として解釈されます。この場合の数値定数の例を、次に示します。

   1,2        ,1        1,        1,e1

'1,2' および '1,e1' がそれぞれ 2 つの項目を表す場合には、コンマが小数点として解釈されるのを防ぐために、通常トークン (1) の後と区切りトークン (,) の後の両方にスペースを置かなければなりません。コンマは、通常は区切りトークンですが、小数点として解釈される場合には数値の一部となります。したがって、通常トークン (1) の後に区切りトークン (,) を続けることは構文上許されません。 このような場合は、通常トークンの後に区切りトークンではなくスペースを置く必要があります。

コメント:

動的 SQL ステートメントの中に SQL コメントを組み込むことができます。静的 SQL ステートメントの中では、ホスト言語コメントまたは SQL コメントを組み込むことができます。 コメントは、スペースを指定できる場所であればどこでも指定できますが、区切りトークンの中またはキーワードの EXEC と SQL の間は例外です。Java™ では、組み込み Java 式内での SQL コメントは許可されていません。 SQL コメントには、次の 2 つのタイプがあります。

単純コメント
単純コメントは、2 つの連続するハイフン (--) で始まります。 単純コメントは、その行の終わりを超えて続けることはできません。詳しくは、SQL のコメントを参照してください。
ブラケット付きのコメント
ブラケット付きコメントは、/* と */ で囲みます。 括弧付きのコメントは、その行の終わりを超えて続けることができます。詳しくは、SQL のコメントを参照してください。

大文字と小文字:

SQL ステートメントで使用するトークンには、小文字を含めることもできますが、通常トークンの小文字は大文字に変換されます (ただし、ID に大/小文字の区別がある C 言語と Java 言語の変数は例外です)。区切りトークンが大文字に変換されることはありません。 したがって、次のステートメントの場合、

   select * from EMP where lastname = 'Smith';

変換後は、以下のステートメントと同等になります。

   SELECT * FROM EMP WHERE LASTNAME = 'Smith';