Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Ultra Light データベース管理とリファレンス » Ultra Light SQL リファレンス » Ultra Light SQL 文

 

Ultra Light SELECT 文

この文は、データベースから情報を取り出すために使用します。

構文
SELECT [ DISTINCT ] [ row-limitation  ] 
select-list
[ FROM table-expression, ... ]
[ WHERE search-condition ]
[ GROUP BY group-by-expression, ... ]
[ ORDER BY order-by-expression, ... ]
[ FOR  { UPDATE | READ ONLY } ]
[ OPTION ( FORCE ORDER ) ]
row-limitation : 
FIRST 
| TOP n [ START AT m ]
select-list :
expression [ [ AS ] alias-name ], ...
order-by-expression :
{ integer | expression } [ ASC | DESC ]
パラメータ

DISTINCT 句   DISTINCT を指定して、重複するローを結果から削除します。DISTINCT を指定しない場合は、SELECT 文の句を満たすすべてのローを返します。ここには重複するローも含まれます。多くの場合、DISTINCT を指定すると、文の実行時間が非常に長くなります。したがって、DISTINCT を使用するのは、必要な場合だけにしてください。

row-limitation 句   ロー制限を使用して、結果のサブセットを返します。たとえば、結果セットの最初のローを取得するには、FIRST を指定します。結果の最初の n 個のローを返すには、TOPn を使用します。TOPn 個のローを取得するときの開始ローの位置を制御するには、START ATm を指定します。これらの句が意味のある結果を返すようにローの順序を指定するには、SELECT 文に ORDER BY 句を指定します。

select-list   式のリストであり、データベースから何を取り出すかを指定します。通常の場合、select リスト内の式はカラム名です。ただし、関数のように、他のタイプの式にすることもできます。アスタリスク (*) を使用すると、FROM 句にリストされた全テーブルのすべてのカラムを選択できます。オプションとして、select-list 内のそれぞれの式に対して、エイリアスを定義できます。エイリアスを使用すると、クエリ内の別の位置 (WHERE 句や ORDER BY 句など) から、select-list の式を参照できるようになります。

FROM 句   table-expression の中で指定されるテーブルとビューからローを取り出します。Ultra Light FROM 句を参照してください。

WHERE 句   WHERE 句を指定すると、search-condition を満たすローだけが選択されます。Ultra Light の探索条件を参照してください。

GROUP BY 句   GROUP BY 句を使用したクエリの結果には、GROUP BY 式の中の個別の値の各セットに対し 1 つのローが入ります。テーブル・リストのローの各グループに対する結果にはローが 1 つずつ含まれるため、結果ローはグループとして頻繁に参照されます。これらのグループ内のローには、集合関数を適用できます。NULL があった場合、ユニークな値と見なされます。

ORDER BY 句   この句で指定した式に従って、クエリの結果がソートされます。ORDER BY 句の各式は、昇順 (ASC) または降順 (DESC) (デフォルト) でソートすることができます。式が整数 n である場合、クエリの結果は select リストの n 番目の式でソートされます。

特定の順序でローが返されるようにする唯一の方法は ORDER BY を使用することです。ORDER BY 句がない場合は、Ultra Light が最も効率のよい順序でローを返します。

FOR 句   この句には、クエリの動作を制御する 2 つの形式があります。

  • FOR READ ONLY   この句は、クエリが更新に使用されないことを示します。クエリが更新に使用されないことがわかっている場合は、Ultra Light のパフォーマンスが向上することがあるため、この句はできるだけ指定してください。たとえば、読み込み専用アクセスが必要であることがわかると、Ultra Light はダイレクト・テーブル・スキャンを実行できます。FOR READ ONLY はデフォルトの動作です。ダイレクト・ページ・スキャンの使用を参照してください。

  • FOR UPDATE   この句によってクエリを更新に使用できるようになります。この句は、明示的に指定する必要があります。明示的に指定しないと、更新は許可されません (FOR READ ONLY がデフォルトの動作)。

OPTION ( FORCE ORDER ) 句   この句は一般的には使用しないことをおすすめします。この句は、Ultra Light で選択されたテーブル・アクセス順序を上書きし、クエリに出現する順序でテーブルにアクセスするよう Ultra Light に要求します。この句は、クエリの順序が Ultra Light の順序よりも確実に効率的である場合にのみ使用してください。

Ultra Light では、実行プランを使用してクエリを最適化することもできます。Ultra Light の実行プランを参照してください。

備考

クエリは必ず閉じてください。そうしないと、メモリが解放されず、存在し続けるテンポラリ・テーブルの数が不必要に増加することになります。

参照

次の文は、Employees テーブルから従業員の数を選択します。

SELECT COUNT(*)
FROM Employees;

次の文は、Employees テーブルで 40 番目から 49 番目までの 10 個のローを選択します。

SELECT TOP 10 START AT 40 * FROM Employees;