パラメーター クエリ
値を変えるだけで、繰り返し利用できるクエリを作成することが必要になる場合があります。 たとえば、ある著者によって書かれたすべての title_ids を検索するクエリを頻繁に実行するような場合です。 著者の ID または名前を変更するだけで、要求のたびに同じクエリを実行できます。
値を変更できるクエリを作成するには、クエリでパラメーターを使用します。 パラメーターとは、クエリの実行時に与えられる値のプレースホルダーです。 パラメーターを含む SQL ステートメントの例を次に示します。"?" は、著者の ID を表すパラメーターを示します。
SELECT title_id
FROM titleauthor
WHERE (au_id = ?)
パラメーターの使用例
パラメーターは、リテラル値 (文字列または数値) のプレースホルダーとして使用できます。 最も一般的には、パラメーターは個別の行またはグループに対する検索条件のプレースホルダーとして、つまり SQL ステートメントの WHERE 句または HAVING 句内で使用されます。
データベースによっては、式の中のプレースホルダーとしてパラメーターを使用できます。 たとえば、クエリを実行するたびに異なる割引き値を指定して、割引き価格を計算できます。 この計算は、次の式で行います。
(price * ?)
パラメーターを使用できる場所の詳細については、使用するデータベースのドキュメントを参照してください。
無名パラメーターと名前付きパラメーターの指定
指定できるパラメーターは、無名パラメーターと名前付きパラメーターの 2 種類です。 無名パラメーターは疑問符 (?) です。リテラル値の入力を要求する、またはリテラル値を代入するクエリ内の任意の位置に挿入できます。 たとえば、無名パラメーターを使って titleauthor テーブルで著者の ID を検索する場合は、SQL ペインに次のようなステートメントが作成されます。
SELECT title_id
FROM titleauthor
WHERE (au_id = ?)
クエリおよびビュー デザイナーでクエリを実行すると、[クエリ パラメーター] ダイアログ ボックスでパラメーター名として "?" が表示されます。
パラメーターに名前を割り当てることもできます。 名前付きパラメーターは、クエリに複数のパラメーターがある場合に特に便利です。 たとえば、名前付きパラメーターを使って authors テーブルで著者の姓名を検索する場合は、SQL ペインに次のようなステートメントが作成されます。
SELECT au_id
FROM authors
WHERE au_fname = %first name% AND
au_lname = %last name%
ヒント
名前付きパラメーター クエリを作成する前に、プリフィックスとサフィックスを定義する必要があります。 詳細については、「[クエリ/ビュー デザイナー] ([オプション] ダイアログ ボックス - [データベース ツール])」を参照してください。
クエリおよびビュー デザイナーでクエリを実行すると、名前付きパラメーターのリストを含む[クエリ パラメーター] ダイアログ ボックスが表示されます。
参照
概念
サポートされるクエリの種類 (Visual Database Tools)