最も基本的で最もよく使用される SQL ステートメントは SELECT ステートメントです。 SELECT ステートメントはすべての SQL ステートメントの中で最も機能が多く、一般に選択クエリと呼ばれます。 SELECT ステートメントを使用してデータベース テーブルからデータを取得し、その結果は、通常、任意の数のフィールド (列) で構成されるレコード (行) のセットとして返されます。 FROM 句を使用して、選択対象が存在する 1 つ以上のテーブルを指定する必要があります。 SELECT ステートメントの基本構造は次のとおりです。
SELECT field list
FROM table list
テーブルからすべてのフィールドを選択するには、アスタリスク (*) を使用します。 たとえば、次のステートメントは Customers テーブルからすべてのフィールドとすべてのレコードを選択します。
SELECT *
FROM tblCustomers
クエリによって返されるフィールドを絞り込むには、アスタリスクの代わりにフィールド名を指定します。 次に例を示します。
SELECT [Last Name], Phone
FROM tblCustomers
結果セット内のフィールドに別の名前を指定するには、 AS キーワードを使用してそのフィールドの別名を確立します。
SELECT CustomerID AS [Customer Number]
FROM tblCustomers
結果セットを制限する
多くの場合、テーブルからすべてのレコードを取得する必要はありません。 一部の条件に基づいて、これらのレコードのサブセットのみが必要になります。 SELECT ステートメントを修飾するには、WHERE 句を使用する必要があります。これにより、取得するレコードを正確に指定できます。
SELECT *
FROM tblInvoices
WHERE CustomerID = 1
WHERE 句の部分にCustomerID = 1
注意してください。 WHERE 句にはこのような式を 40 個まで含めることができ、AND または OR 論理演算子を使って式を結合できます。 複数の式を使うことで、結果セットに返されるレコードをより詳細に絞り込むことができます。
SELECT *
FROM tblInvoices
WHERE CustomerID = 1 AND InvoiceDate > #01/01/98#
日付文字列が数値記号 (#) で囲まれていることに注意してください。 式の中で標準文字列を使用する場合、その文字列を一重引用符 (') で囲む必要があります。 次に例を示します。
SELECT *
FROM tblCustomers
WHERE [Last Name] = 'White'
文字列値全体がわからない場合は、 Like 演算子でワイルドカード文字を使用できます。
SELECT *
FROM tblCustomers
WHERE [Last Name] LIKE 'W*'
使用できるワイルドカード文字にはいくつかの種類があります。次の表は、ワイルドカード文字の一覧とそれぞれの機能についての説明です。
ワイルドカード文字 | 説明 |
---|---|
* | 0 文字以上の文字 |
? | 任意の 1 文字 |
# | 任意の半角の数字 (0 ~ 9) |
[ charlist ] | 引数 charlist に含まれる任意の全角または半角の 1 文字 |
[! charlist ] | 引数 charlist に含まれない任意の全角または半角の 1 文字 |
結果セットを並べ替える
結果セット内の 1 つ以上のフィールドに対して特定の並べ替え順序を指定するには、オプションの ORDER BY 句を使用します。 レコードは昇順 (ASC) または降順 (DESC) の順序で並べ替えることができます。ascending が既定値です。
ORDER BY 句で参照されるフィールドは、SELECT ステートメントのフィールド リストの一部である必要はありません。並べ替えは文字列、数値、および日付/時刻の値に適用できます。 常に SELECT ステートメントの末尾に ORDER BY 句を配置します。
SELECT *
FROM tblCustomers
ORDER BY [Last Name], [First Name] DESC
ORDER BY 句では、フィールド名の代わりに番号 (位置) でフィールドを指定することもできます。
SELECT *
FROM tblCustomers
ORDER BY 2, 3 DESC
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。