データベースの情報をレコードのセットとして返すよう Microsoft Jet データベース エンジンに指示します。
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]}
FROM tableexpression [, ...][IN externaldatabase]
[WHERE...]
[GROUP BY...]
[HAVING...]
[ORDER BY...]
[WITH OWNERACCESS OPTION]
SELECT ステートメントには、次の指定項目があります。
指定項目 | 内容 |
---|---|
predicate | ALL、DISTINCT、DISTINCTROW、TOP のいずれかの述語。これらの述語は、返されるレコードの数を制限するために使用します。指定がない場合は、ALL になります。 |
* | この記号を付けると、指定したテーブルのすべてのフィールドが選択されます。 |
table | レコードを選択するフィールドのあるテーブルの名前。 |
field1、field2 | 取得するデータのある 1 つ以上のフィールドの名前。複数のフィールドを指定した場合は、指定順に取得されます。 |
alias1、alias2 | 引数 table の元の列名の代わりに列見出しとして使用する名前。 |
tableexpression | 取得するデータのある 1 つ以上のテーブルの名前。 |
externaldatabase | 引数 tableexpression で指定したテーブルを格納しているデータベースの名前。 |
Microsoft® Jet データベース エンジンは、SELECT ステートメントで指定したテーブルの検索、選択された列の抽出、抽出条件を満たす行の選択、および選択された行の指定の順序による並べ替え、またはグループ化を行います。
SELECT ステートメントは、データベース内のデータの内容を変更しません。
通常、SELECT は SQL ステートメントの先頭に記述します。ほとんどの SQL ステートメントは SELECT ステートメントまたは SELECT...INTO ステートメントのいずれかになります。
SELECT ステートメントの最も簡単な構文を次に示します。
SELECT fields FROM table
アスタリスク (*) を使用すると、テーブル内のすべてのフィールドが選択できます。次の例では、[社員] テーブルにあるすべてのフィールドが選択されます。
SELECT * FROM
社員;
同じフィールド名が、FROM 句に記述してある複数のテーブルに含まれる場合、フィールド名の前にテーブル名とドット演算子 (.) を記述します。次の例では、[社員] テーブルと [監督者] テーブルの両方に "部署" フィールドがあります。この SQL ステートメントでは、[社員] テーブルからは "部署" が選択され、[監督者] テーブルからは "監督者名" が選択されます。
SELECT
社員.
部署,
監督者.
監督者名
FROM
社員 INNER JOIN
監督者
WHERE
社員.
部署 =
監督者.
部署;
Microsoft Jet データベース エンジンは、Recordset オブジェクトを作成する場合は、その Field オブジェクト名としてテーブルのフィールド名を使用します。異なるフィールド名を付けたい場合、またはフィールド作成の式の中にフィールド名を明示しない場合は、予約語 AS を使用します。次の例では、Recordset オブジェクトに返される Field オブジェクトの名前は "誕生日" になります。
SELECT
生年月日
AS
誕生日 FROM
社員;
集計関数を使用する場合、またはあいまいな Field オブジェクト名や重複する Field オブジェクト名を返すクエリを使用する場合は、必ず AS 句を使用して Field オブジェクトに別の名前を付ける必要があります。次の例では、Recordset オブジェクトに返される Field オブジェクトのフィールド名は "人数" になります。
SELECT COUNT(
社員コード)
AS
人数 FROM
社員;
SELECT ステートメントでは、これ以外にもさまざまな句を使用して、返されるデータを制限したり整理したりできます。詳細については、使用する句のヘルプ トピックを参照してください。