FROM句

FROM句は、参照表から行を取得するために使用されます。

構文

from_clause ::= FROM (single_from_table | nested_tables)

single_from_table ::= aliased_table_name

aliased_table_name ::= 
   (table_name | SYSTEM_TABLE_NAME) [[AS] table_alias]

table_alias ::= [$] id

セマンティクス

構文に示すように、FROM句は単一表を参照するか、ネストされた表句を含めることができます。ネストされた表については、同じ表階層内の表の結合の項を参照してください。

single_from_table

単純なFROM句の場合、表は名前で指定されます。子表の場合は、コンポジット(ドット区切り)名になります。単純なFROM句の結果は、参照表の行を含む順序です。

aliased_table_name

表名の後に表の別名を付けることができます。表の別名は、基本的に、指定された表の行全体にわたる変数です。別名が指定されていない場合は、問合せのスペルと同じ表名を使用して内部的に作成されますが、子表の場合はドット文字が「_」で置換されます。表階層を参照してください。

注意:

表の別名では、変数名と同様に大/小文字が区別されます。

SELECT式の他の句はFROM句によって生成された行を操作し、一度に1行ずつ処理します。現在処理中の行はコンテキスト行と呼ばれます。コンテキスト行の列は、式で名前によって直接参照することも、後ろにドット文字と列名が続く表の別名で参照することもできます。列の参照の項を参照してください。表の別名がドル記号($)で始まる場合、実際には、名前が別名である変数の変数宣言として機能します。この変数はコンテキスト行全体にバインドされ、SELECT式の副次式内で参照できます。たとえば、引数としてexpiration_time関数に渡して、コンテキスト行の有効期限を取得できます。timestamp(0) expiration_time(AnyRecord)関数を参照してください。つまり、$fooなどの表の別名はそれ自体が式ですが、fooは式ではありません。この変数の名前が外部変数と同じ場合は、外部変数が非表示になることに注意してください。これは、FROM句によってネストされたスコープが作成され、SELECT式の残りの部分に存在するためです。

例6-2 From句

SELECT * FROM users;

上の例は、すべてのユーザーのすべての情報を選択します。