基本 SQL プロトタイピングの使用

「Basic SELECT Prototyping」では、2 つのパネルを使用します。検索するデータが入っている 1 つ以上の表 (FROM 文節) を指定する場合に 1 次パネルを使用し、表示する列の修飾情報 (WHERE 文節) およびデータを表示する順序 (ORDER BY 文節) を指定する場合に 2 次パネルを使用します。

1 次「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」パネルを表示するには、「SQL Prototyping, Execution and Analysis (SQL プロトタイピング、実行と分析)」パネルでオプション 1 (「Basic (基本)」) を選択します。

1. 1 次「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」パネル
Process   Options   Utilities   Help
 ──────────────────────────────────────────────────────────────────────────────
 FM/Db2 (DFG2)              Basic SELECT Prototyping

 Enter the name(s) of the table(s) from which to retrieve data:
     Owner           Name
   1 DSN81010      + EMP                             + Location                 
   2 DSN81010      + DEPT                            + Database         
   3               +                                 + Tbl spc.         
   4               +                                 +
   5               +                                 +
   6               +                                 +
   7               +                                 +
   8               +                                 +
   9               +                                 +
  10               +                                 +
  11               +                                 +
  12               +                                 +
  13               +                                 +
  14               +                                 +
  15               +                                 +
 Command ===>                                                                  
  F1=Help      F2=Split     F3=Exit      F9=Swap     F12=Cancel

このパネルでは、最大 15 個の表、ビュー、同義語、または別名を指定して、プロトタイプ化する SELECT ステートメントに含めることができます。複数のオブジェクトを指定する場合、指定したすべてのオブジェクト用の列が、Enter キーを押したときに 2 次「Basic SELECT Prototyping (基本選択プロトタイピング)」パネルに表示されます。2 次「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」パネル を参照してください。

パネルの左方にある入力行番号 (1、2、など) は変更できません。入力行番号の目的は、Db2® オブジェクトを識別するために使用される相関名に接尾部を提供することです。Db2® 相関名について詳しくは、「SQL リファレンス」 を参照してください。完全な Db2® 相関名は、Enter キーを押したときに 2 次「Basic SELECT Prototyping (基本選択プロトタイピング)」パネルの「Tab (タブ)」列に表示されます。完全な相関名は、1 文字の大文字の後に入力行番号が続きます。この大文字は、通常は「T」ですが、いずれかの Db2® オブジェクト名の先頭が「T」である場合は別の文字になります。基本プロトタイピング機能により、相関名参照として選択された文字は必ず、1 次「Basic SELECT Prototyping (基本選択プロトタイピング)」パネルに含まれる、どの Db2® オブジェクト名の先頭文字とも異なるようになります。

結果表に含まれる列と行は、2 次「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」パネルで指定される SELECT および WHERE 文節によって決定されます。このパネルは、オブジェクトを指定して Enter キーを押したときに表示されます。このセクションの例では、表 DSN81010.EMP および DSN81010.DEPT を使用します。

表とビューを指定するには、「Location (ロケーション)」、「Database (データベース)」、「Tbl spc. (表スペース)」、「Owner (所有者)」フィールドにオプションで値を入力し、「Name (名前)」フィールドに値を入力します。同義語を指定するには、「Name (名前)」フィールドに値を入力します。同義語の場合に「Owner (所有者)」フィールドに値を入力する場合、その値は現行の SQLID にする必要があります。フィールドはすべて、フィールドにパターンを指定することによるカタログ検索をサポートします。1 次「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」パネルに表名を指定した後に、Enter キーを押して、2 次「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」パネルを表示します。

2. 2 次「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」パネル
Process   Options   Utilities   Help
────────────────────────────────────────────────────────────────────────────────
 FM/Db2 (DFG2)              Basic SELECT Prototyping                Row 1 of 19

 SELECT ?
   FROM ?
   WHERE ?
   ORDER BY ?

 Row count  0              Number of rows to display

 Select columns (S/A/D) or enter predicates to build the SELECT statement:

 S LOp ( Tab Column Name      + Data Type(length)  + Op Value                 )
          T1 EMPNO              CHAR(6)                                        
          T1 FIRSTNME           VARCHAR(12)                                    
          T1 MIDINIT            CHAR(1)                                        
          T1 LASTNAME           VARCHAR(15)                                    
          T1 WORKDEPT           CHAR(3)                                        
          T1 PHONENO            CHAR(4)                                        

 Command ===>                                                       Scroll PAGE
  F1=Help      F2=Split     F3=Exit      F6=Execute   F7=Backward  F8=Forward
  F9=Swap     F12=Cancel

2 次「Basic SELECT Prototyping (基本選択プロトタイピング)」パネルが最初に表示されるとき、このパネルには 1 次パネルで入力した Db2® オブジェクト用のすべての列が表示されます。ディスプレイに収まりきらない数の列がある場合は、スクロールアップまたはスクロールダウンすることができます。プロトタイプ化する SQL ステートメントは、4 つの文節 (SELECT、FROM、WHERE、および ORDER BY) としてパネルの上部に表示されます。空の文節は ? で示されます。

FM/Db2 は、ユーザーが基本コマンドまたは行コマンドを入力すると、これらの 1 つ以上の文節を自動的に更新します。各文節フィールドは、ISPF 拡張可能フィールドです。その文節全体を表示するにはフィールドが短すぎる場合、フィールドの末尾に + が表示されます。そのフィールド内のいずれかの場所にカーソルを置いて ISPF EXPAND キーを押すと、完全な文節をポップアップ・ウィンドウで表示できます。

SQL ステートメントが実行された際に、結果セットに戻される行数を制限するには、「Row count (行数)」フィールドに最大行数を指定します。

「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」を使用すると、以下の基本コマンドが使用できます。

ALL
このコマンドは、Db2® オブジェクトのすべての列を選択する場合に使用します。オプション・パラメーター #n を指定すると、表示された n 番目の Db2® オブジェクトの列のみを含めることができます。
CANCEL
このコマンドは、1 次「Basic SELECT Prototyping」パネルに戻る場合に使用します。
EXECUTE
このコマンドは、プロトタイプ化した SQL ステートメントを実行するために使用します。
RESET
このコマンドは、SQL ステートメントに対する変更をすべて中止するために使用します。すべての文節の状況は、空に戻ります。
SQL
このコマンドは、完全な SQL ステートメントを ISPF エディター・セッションで表示するために使用します。
UNDO
このコマンドは、直前に行った変更をバックアウトするために使用します。

以下の行コマンドは、どの列に対しても入力できます。

  • S または /

    列の項目に対して S または / を入力すると、その列が SQL ステートメント用の列のリストに追加されます。この列のデータは、ステートメントの実行時に結果表に組み込まれます。

    一度に複数の列を選択できますが、それらの項目は上から下へ処理されるため、結果表内の列順序が重要な場合は、列を個別に選択しなければならない可能性があります。

  • A および D

    列の項目に対して A か D のいずれかを入力すると、その列の ORDER BY 文節が追加されます。指定した列が列リストに存在しない場合、その列は列リストにも追加されます。この列のデータは、ステートメントの実行時に結果表に組み込まれます。行はそのデータを基に昇順または降順でソートされます。

    A を入力すると、ORDER BY 文節には列名が変更されずにそのまま組み込まれます。この場合は、デフォルトで昇順 (ASC キーワード) に設定されます。

    D を入力すると、ORDER BY 文節にその列名が組み込まれ、次に DESC キーワードが続きます。これは、結果表がその列のデータを基に降順でソートされることを示します。

  • U

    列の項目に対して U を入力すると、結果表内の列リストから最後の列参照が除去されます。列が除去され、その列が列リストに指定されなくなると、次のことが生じます。

    • 列に対する ORDER BY 文節の参照もすべて除去されます。
    • 列に対する述部の参照もすべて除去されます。

    同じ列を列リストに複数回追加した場合、U コマンドを繰り返し使用してすべての参照を除去してください。

  • UO

    列の項目に対して UO を入力すると、最後の ORDER BY 参照が除去されます。

    列に対する ORDER BY 参照を除去しても、列リストから列は除去されません。また、WHERE 文節から列を参照している述部も除去されません。

    同じ列を ORDER BY 文節に複数回追加した場合、UO コマンドを繰り返し使用してすべての参照を除去してください。

  • UW

    列の項目に対して UW を入力すると、その列を参照する最後の述部が除去されます。

    列に対する WHERE 文節の参照を除去しても、列リストから列は除去されず、ORDER BY 文節からの列の参照はいずれも除去されません。

    その列を含む述部が複数存在する場合は、UW コマンドを繰り返し使用してすべての参照を除去してください。