クエリエディターは、単一検索や複合検索の作成に使用する多目的なエディターです。“かつ”、“または”、“以外”の論理演算子を用いて結合された複合検索を作成することができます。例えば、クエリエディターを使用して、“年齢60才以上または年収4,500,000円超"のすべての従業員を検索することができます。
検索対象として、カレントセレクションまたはテーブルの全レコードのいずれかを選択することができます。他の3つの検索方法は、常にテーブル全体を検索します。検索条件をディスクに保存し、クエリを再度使用したい時にその条件を開くことができます。クエリエディターは最後に使用した検索条件を呼び出します。そのクエリの編集して使用することも、消去して新しいクエリを作成することもできます。カレントテーブルのフィールド、ならびにリレートテーブルのフィールドを検索することができます。
クエリエディターには、次のエリアがあります。
- 検索条件エリア: このエリアには、作成するクエリや、ディスクファイルからロードしたクエリが表示されます。
- 利用可能フィールドメニュー: このメニューを使用し、フィールドリストに表示したいフィールドが属すテーブルを選択することができます。マスターテーブル、リレートテーブルまたはすべてのテーブルからフィールドを表示できます。
- フィールドリスト: このエリアには、選択したテーブルのフィールドが階層リストとして表示されます。インデックス属性を持つフィールド名は太字で表示されます。
- 比較演算子エリア: このエリアには、比較演算子のリストが表示されます。
- 値エリア: このエリアには、検索したい値を入力します。
- 論理演算子ボタン: このエリアには論理演算子に対応する3つのボタンがあり、現在の単一検索と前の単一検索とを結合するために使用できます。
- 絞り込みクエリボタン: このボタンは、カレントセレクション内のレコードだけを対象にして検索を行います。
- クエリエディターエリア: このエリアを使用して、クエリの保存、他のクエリをディスクからロード、クエリの取り消し、または検索の実行を行います。
同じクエリを頻繁に実行する場合は、そのクエリをディスクに保存しておきたいかもしれません。クエリをディスクに保存すると、その作成は1回で済みます。クエリを保存しておけば、クエリエディターを使用する際に、任意のクエリをディスクから読み込み、クエリボタンまたは絞り込みクエリボタンをクリックするだけで検索を実行することができます。クエリをディスクに保存するには、検索条件を設定した後に保存...ボタンをクリックします。4Dによってファイル保存用のダイアログボックスが表示され、ファイル名とファイル場所を指定することができます。クエリの拡張子は".4DF"です。
保存したクエリを読み込むには、読み込み...ボタンをクリックして、任意のクエリファイル (拡張子".4DF") を選択します。4Dは、クエリエディターにクエリを読み込みます。クエリファイルを読み込むと、クエリエディター上に表示されていたクエリと置き換えられます。
クエリを作成する際、指定した値とデータベースの内容とを比較する方法を4Dに対して指示しなければなりません。例えば名字が“佐藤”と等しいというクエリの場合は、等しいという比較演算子を使用します。これは4Dに対して、名字フィールドの値と文字列である“佐藤”とを比較するように指示します。
英数字タイプの値に関する比較では、大文字小文字が区別されません。名字が“Smith”である人を検索すると、“smith”や“SMITH”、“sMith”などを含むレコードが検出されます。
含むおよび含まない比較演算子を用いたクエリは、常にシーケンシャル検索になります。
キーワードを含む演算子は文字およびテキスト型にのみ適用できます。
詳細については4Dランゲージリファレンスマニュアルの比較演算子を参照してください。
4Dでは、クエリを指定しやすくするためにワイルドカード記号 (@) が用意され、文字またはテキストタイプのフィールドに関する検索において、1桁以上の文字を置き換えることができます。例えば、あるフィールドで“佐藤四太郎”という名前をすべて探し出す場合、いくつかの方法を用いて検索を指定することができます:
検索条件: | 検出される値 |
佐藤@ | “佐藤”で始まるすべての値 |
@太郎 | “太郎”で終わるすべての値 |
佐@太郎 | “佐”で始まり、“太郎”で終わるすべての値 |
@太@ | “太”を含む全ての値 |
注: ワイルドカード記号は検索値の最後に配置されている場合にかぎり、"キーワードを含む"と組み合わせて使用することも可能です。詳細については4DランゲージリファレンスマニュアルのOpen external windowを参照してください。
1つまたは複数のフィールドを検索することができます。1つのフィールドに基づくクエリは、“単一検索”と呼ばれます。例えば、名字が“佐藤”に等しいという検索は単一検索です。単一検索を実行すると、4Dはデータベースを検索する際に、1つのフィールドの内容を調べます。
複数のフィールドに基づく検索は、“複合検索”と呼ばれます。複合検索を行う場合は、論理演算子を使用して個々のクエリを組み合わせます。論理演算子により、それぞれのクエリの結果を組み合わせる方法を4Dに指示します。3種類の論理演算子があります:
- かつ: この演算子は、2つの条件を同時に満たすレコードをすべて検索します。例えば、“技術部門で働き、かつ給与が5,000,000円以上の従業員をすべて検索する”というクエリは、給与が5,000,000円以上である技術部門の従業員のレコードだけを探し出します。
- または: この演算子は、2つの単一検索のいずれかの条件を満たすレコードを検索します。例えば、“技術部門で働く従業員、または給与が5,000,000円以上である従業員をすべて検索する”というクエリは、技術部門で働く従業員、および働く部門とは関係なく給与が5,000,000円である従業員をすべて探し出します。
- 以外: この演算子は、“~ではない”と同じです。例えば、“給与が5,000,000円以上である従業員以外の技術者をすべて検索する”というクエリは、給与が5,000,000円以上である技術者を除外します。
論理演算子を使用すると、“東京または大阪に所属し、かつ販売高が2,000,000円より少なく、かつ歩合が30パーセントを越える販売員を検索する”というような複合検索を作成することができます。次の図は、このクエリがクエリエディター上で指定されている様子を示しています:

このクエリが実行されると、4Dは低い販売高売上に対して高い歩合を得ている、東京または大阪の販売員をすべて検索します。比較演算子と論理演算子を使用するこの他の例題は、各検索メソッドにおいて紹介されています。