クエリに対して 1 つ以上のテーブルを指定する SELECT 節です。
Synopsis
SELECT ...
FROM [%INORDER] [%FULL] table [[AS] alias][,table [[AS] alias]][,...]
引数
%INORDER オプション — このキーワードにより、クエリ・オプティマイザは、FROM 節にリストされるテーブルの順番で結合を実行します。コンパイル時間を最小限にします。
%FULL
オプション — このキーワードにより、クエリ・オプティマイザは、すべての代替結合シーケンスを検査し、アクセス・パフォーマンスを最大限に引き出します。キーワードが指定されていない場合、これが既定になります。
状況により、両方のキーワードを指定することが重要になる場合があります。
table 検索されたデータから 1 つ以上のテーブルが、通常はコンマ区切りのリストとして指定されます。
AS alias オプション — テーブル名のエイリアス。AS キーワードは省略可能で、これの有無に関係なくエイリアスを指定できます。
概要
FROM 節は、SELECT 文内でデータを照会する 1 つ以上のテーブルを指定します。複数のテーブルは、コンマで区切られたリスト、または他の JOIN 構文によって区切られたリストとして指定されます。各テーブル名には、オプションとしてエイリアスを指定できます。
テーブル名のエイリアスは、SELECT 文で複数のテーブルのフィールド名を指定するときに使用されます。FROM 節に 2 つ (またはそれ以上) のテーブルが指定されている場合は、tablename.fieldname の形式で SELECT 節の各フィールドを指定することで、どのテーブルのフィールドを対象とするのかを明確にできます。この場合、テーブル名は長い名前が多いので、短いエイリアスを指定すると便利です。
以下の例は、テーブル名のエイリアスの使用方法を示します。
SELECT e.Name,c.Name
FROM Sample.Company AS c,Sample.Employee AS e
AS キーワードは省略できますが、互換性と文を明確にする目的で使用されています。
複数のテーブルを指定すると、Caché SQL はこれらのテーブルに対して結合オペレーションを実行します。テーブル名がコンマで区切られているときは、交差結合が実行されます。テーブル名リストに他の結合構文 (コンマではなく) を指定すると、別のタイプの結合オペレーションを実行できます。詳細は、"JOIN" を参照してください。
SQL コンパイラがこれらの結合を実行する方法は、実行時のパフォーマンスに影響します。このため、Caché SQL には %INORDER と %FULL という 2 つの最適化オプションが用意されています。
%INORDER
SQL コンパイラ・オプティマイザは、リストされたテーブル順で結合を実行します。矢印構文で参照されるテーブルの結合順に制限はありません。インデックスを使用しても影響は受けません。
指定されるテーブル順は外部結合に必要な順番と一致しないため、–34 エラーである “%INORDER:FROM order inconsistent with outer join order” が返されます。これを避けるために、%INORDER のみを ANSI 形式の左外部結合で使用することをお薦めします。
ビューとテーブル・サブクエリは、FROM 節で指定された順番で処理されます。
%FULL
このオプション・キーワードにより、コンパイラ・オプティマイザは、すべての代替結合シーケンスを検査し、アクセス・パフォーマンスを最大限に引き出します。例えば、ストアド・プロシージャを生成する場合、コンパイル時間が増えるほど最適なアクセス・パフォーマンスを引き出す必要があります。これが、コンパイラの既定の最適化です。
FROM 節に矢印構文を使ってアクセスするテーブルがある場合、%INORDER キーワードと %FULL キーワードの両方を指定すると、順番の制約がないテーブルを作成できます。
関連項目