4D v13.4

クエリエディター

ホーム

 
4D v13.4
クエリエディター

クエリエディター  


 

 

クエリエディターは、単一検索や複合検索の作成に使用する多目的なエディターです。“かつ”、“または”、“以外”の論理演算子を用いて結合された複合検索を作成することができます。例えば、クエリエディターを使用して、“年齢60才以上または年収4,500,000円超"のすべての従業員を検索することができます。

検索対象として、カレントセレクションまたはテーブルの全レコードのいずれかを選択することができます。他の3つの検索方法は、常にテーブル全体を検索します。検索条件をディスクに保存し、クエリを再度使用したい時にその条件を開くことができます。クエリエディターは最後に使用した検索条件を呼び出します。そのクエリの編集して使用することも、消去して新しいクエリを作成することもできます。カレントテーブルのフィールド、ならびにリレートテーブルのフィールドを検索することができます。

クエリエディターには、次のエリアがあります。

  • 検索条件エリア: このエリアには、作成するクエリや、ディスクファイルからロードしたクエリが表示されます。
  • 利用可能フィールドメニュー: このメニューを使用し、フィールドリストに表示したいフィールドが属すテーブルを選択することができます。マスターテーブル、リレートテーブルまたはすべてのテーブルからフィールドを表示できます。
  • フィールドリスト: このエリアには、選択したテーブルのフィールドが階層リストとして表示されます。インデックス属性を持つフィールド名は太字で表示されます。
  • 比較演算子エリア: このエリアには、比較演算子のリストが表示されます。
  • 値エリア: このエリアには、検索したい値を入力します。
  • 論理演算子ボタン: このエリアには論理演算子に対応する3つのボタンがあり、現在の単一検索と前の単一検索とを結合するために使用できます。
  • 絞り込みクエリボタン: このボタンは、カレントセレクション内のレコードだけを対象にして検索を行います。
  • クエリエディターエリア: このエリアを使用して、クエリの保存、他のクエリをディスクからロード、クエリの取り消し、または検索の実行を行います。

クエリを作成するには、次の手順に従ってください:

  1. デザインモードでレコードメニューのクエリ>クエリ...サブコマンドを選択、またはツールバーのクエリボタンをクリックします。
    4Dはクエリエディターを表示し、検索条件エリアの最初の行を反転表示します。クエリエディターウインドウは右下の角をクリックしてリサイズすることができます。
  2. クエリに使用したいフィールドの属すテーブルを選択します。
    マスターテーブル、リレートテーブル、またはすべてのテーブルを表示することができます。

    リレートテーブルまたはすべてのテーブルを選択した場合には、フィールドの階層リスト上で、リレートフィールドまたはテーブル名の左にアイコンが表示されます (プラス記号 (Windows) または矢印記号 (Macintosh) ) 。このアイコンをクリックすると項目を展開できます。
  3. フィールドリストから検索に使用するフィールド名をクリックします。
    4Dは、検索条件エリアに選択したフィールドが属すテーブル名と、選択フィールド名を表示します。
    比較演算子エリアがアクティブになり、デフォルトで比較演算子“=”を選択されています。
  4. “=”以外の比較演算子をしたい場合は、任意の演算子をクリックします。
    選択した演算子は検索条件エリアにてフィールド名の隣に表示されます。
  5. 検索する値を値エリアに入力します。
    テキストと文字タイプのフィールドでは、値の最後にワイルドカード記号“@”を使用して、“~で始まる”検索を要求することができます。
    選択したフィールドに選択リストが関連付けられている場合、4Dは選択リストを表示し、値の選択を要求します。ブールフィールドを選択した場合、4Dは一対のラジオボタンを表示します。
  6. 他の単一検索を追加したい場合は、行追加ボタンをクリックします。
    4Dは“かつ”論理演算子を使用して、新しい行を追加します。既存の単一検索の間に新しい単一検索を挿入するには、行挿入ボタンをクリックします。すると4Dは選択行を複製して挿入します。
  7. 論理演算子“または”や“以外”を使用したい場合は、任意の論理演算子ボタンをクリックします。
  8. ステップ2から5を繰り返して、2番目の単一検索を作成します。
    複合検索を作成する際、4Dはクエリエディター上に表示された順番 (つまり、上から下へ) で単一検索を評価します。論理演算子間には優先順位がありません。つまり、論理演算子"かつ"が"または"に優先するということはありません。したがって、複数の単一検索を使用して複合条件を作成する場合には、単一検索を入力した順番によって検索結果が影響を受ける可能性があります。
    複合検索の作成時に、既に指定した検索条件を部分的に修正することができます。これを行うには、変更したい行をクリックしてから新しいフィールドや演算子をクリックするか、あるいは新しい値を入力します。
    行を選択して行削除ボタンをクリックすると、単一検索が削除されます。複合検索条件ですべての行を削除するには、すべてクリアボタンをクリックします。
    行削除は元に戻せませんので注意してください。
  9.  (任意) 検索条件をディスクへ保存するには、保存...ボタンをクリックして、ファイル作成ダイアログボックス上でファイル名を入力します。詳細は次の項目を参照してください。
    検索を実行するために必ずしも検索条件を保存する必要はありません。
  10. テーブル全体を検索を実行するにはクエリボタンをクリックします。
    または、検索をカレントセレクションに限定する場合は、絞り込みクエリボタンをクリックします。

同じクエリを頻繁に実行する場合は、そのクエリをディスクに保存しておきたいかもしれません。クエリをディスクに保存すると、その作成は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は低い販売高売上に対して高い歩合を得ている、東京または大阪の販売員をすべて検索します。比較演算子と論理演算子を使用するこの他の例題は、各検索メソッドにおいて紹介されています。

 
プロパティ 

プロダクト: 4D
テーマ: レコードの検索