インフォメーション・センター

SQL ウィザード (Java 2 対応ブラウザー)

SQL ウィザードによって、SQL ステートメントを作成し、これをリモート・ データベース・サーバーに送って、結果のデータ (ある場合) を検索し、 結果のデータを保管して、再利用のために SQL ステートメントを保管する ことができます。

リモート・データベース・サーバーは iSeries または AS/400 で 稼働中で、クライアント・ワークステーションには該当する Java Database Connectivity (JDBC) ドライバーがなければなりません。Z and I Emulator for Web クライアントおよび Database On-Demand クライアントには既に AS/400 Toolbox for Java からの JDBC ドライバーが組み込まれていて、これにより Z and I Emulator for Web クライアントまたは Database On-Demand クライアントは適切に構成された iSeries または AS/400 の DB2/400 データにアクセスできます (「ログオン」タブの 「ドライバー ID」 フィールドを参照) 。

他のホスト・プラットフォームで稼働中のデータベース・サーバーがサポートされるのは、Z and I Emulator for Web または Database On-Demand クライアント・ワークステーションに適切な JDBC ドライバーがインストールされている場合だけです (「ログオン」タブの 「ドライバー ID」フィールドを参照) 。

SQL ウィザードのユーザー・インターフェースは、処理するテーブルを選択し、 データが戻される列を選択し、処理する行の選択条件を指定し、戻された データをソートする列を選択して有効な SQL ステートメントの作成を助けます。新規の式ビルダーによって、演算子、事前定義関数、定数、およびプログラミング構造を使用して、処理される行を選択するための複合条件を定義することができます。同じ式ビルダーによって、戻された値に基づいて複合計算を自動的に実行して、その結果を表示する列式を定義できます。戻されたデータ (列式の結果を含む) は、表示するかまたはファイルに書き込むことが できます。XML を含む各種のファイル形式がサポートされます。SQL ステートメントにはラベルを付けて、再利用のために保管する ことができます。

このウィザードの一部のフィールドは、管理者がクライアントまたは ユーザー ID をデフォルト値に設定するように構成している場合は、 そのように設定できます。

一連のタブによって、SQL ステートメントの作成および実行プロセスが ガイドされます。これらのタブは次のとおりです。

開始

選択
1 つ以上のテーブルから行を選択するには、「Select」を クリックします。
挿入
テーブルに行を追加するには、「Insert」をクリックします。
更新
テーブルの 1 行以上を更新するには、「Update」をクリックします。
削除
テーブルから 1 行以上を削除するには、「Delete」をクリックします。

ログオン

データベース URL
「データベースの URL の指定」を 参照してください。

SQL ウィザードが 5250 ディスプレイ・セッションから起動されている 場合、SQL ウィザードは初めに「データベースの URL」フィールドに 現行 iSeries ホストの名前を含んだデフォルトのデータベースの URL を 表示します。

ユーザー ID
リモート・データベース・サーバーへのログオンにユーザー ID が 必要な場合には、「ユーザー ID」フィールドにユーザー ID を入力して ください。そうでなければ、このフィールドはブランクのままにしておきます。
パスワード
リモート・データベース・サーバーへのログオンにパスワードが 必要な場合には、「パスワード」フィールドにパスワードを入力して ください。そうでなければ、このフィールドはブランクのままにしておきます。
ドライバー ID
このリスト・ボックスには、Z and I Emulator for Web に登録されているすべての JDBC ドライバーの名前が含まれています。このリスト・ボックスを展開して、使用する登録済み JDBC ドライバーの名前をクリックするか、「その他」をクリックして別のドライバーを指定します。

Z and I Emulator for Web クライアントまたは Database On-Demand クライアントでの JDBC ドライバーの一般的な使用法については、 「JDBC ドライバーの登録」を参照してください。

その他
このフィールドには、「ドライバー ID」フィールドに指定した JDBC ドライバーの完全修飾 Java クラス名が入っていなければなりません。

ドライバーはクライアント・ワークステーションにインストールされていて、Z and I Emulator for Web クライアントまたは Database On-Demand クライアントにアクセス可能でなければなりません (「 JDBC ドライバーのデプロイ」を参照) 。

テーブル・フィルター (SQL ウィザード)
このフィールドは、Z and I Emulator for Web 管理者が使用可能にしていなければ表示されません。

スキーマ名、スキーマ・フィルター、テーブル名、およびテーブル・フィルターの コンマで区切られたリストを入力します。具体的には、「」を参照してください。スキーマ名、スキーマ・フィルター、テーブル名、テーブル・フィルターの詳細説明については、「使用可能なスキーマおよびテーブルのリストの指定」を参照してください。

このフィールドに入力したコンマで区切られたリストは、データベースへのログオン後に SQL ウィザードの 「テーブル」タブの「使用可能なテーブルのリスト」に表示したい スキーマおよびテーブルを指定します。

デフォルト値を使用する場合は、このフィールドをブランクのままにしておきます。

この「テーブル・フィルター」フィールドは、使用可能なテーブルのリストの いくつかのフィルタリング・レベルのうちの 1 つです (「レベル 4. 現行 SQL または File Upload ステートメントの値」を参照) 。

接続および切断
リモート・データベース・サーバーに接続するには、「接続」 をクリックします。

接続に失敗して Java エラー・メッセージが表示されたか、または Netscape 4.7x が稼働中の場合には、 「ログオンまたは接続時の問題」を参照 してください。

一定の環境の下では、エラー・メッセージ「SQL 支援の例外」が出されることがあります。「SQL 支援の例外」を参照してください。

リモート・データベース・サーバーから切断するには、「切断」 をクリックします。

テーブル

使用可能な表
これは、現行のSQL ステートメントで使用するのに利用できる スキーマおよびテーブルのリストです (「使用可能な テーブルのリスト」を参照)。

このリストの内容は、いくつかのレベルのフィルタリングによって 決定されます (「スキーマ名およびテーブル名の フィルタリングのレベル」を参照) 。

以下のことに注意してください。

1 つ以上のテーブルを「選択したテーブル」のリストに移動するには、以下のようにします。

リスト中のスキーマの内容を拡張または縮小するには、スキーマ名の左の「+」または「-」 記号をクリックします。

選択した表
このリストには、SQL ステートメントが適用される 1 つ以上のテーブルが入っています。

SQL ステートメントのタイプが「Select」の場合には、SQL ウィザード は選択したテーブルの名前を「検討」タブの SQL ステートメントの FROM 文節に 追加します。

相関名は、テーブルの代替名です。同じテーブル (例えば、AA01) を複数回選択すると、SQL ウィザードが自動的に相関名 (例えば、AA01_1) を作成します。相関名を手動で作成するには、以下のようにします。

  1. テーブル名をクリックします。
  2. 使用したい相関名を入力します。

1 つ以上のテーブル名を「使用可能なテーブル」のリストに戻すには、以下のようにします。

すべてのテーブルを「使用可能なテーブル」のリストに戻すには、「<<」をクリックします。

スキーマのフィルタリング
「使用可能なテーブル」のリストに表示したい スキーマの名前を選択するには、「スキーマのフィルタリング」 をクリックします。
表のフィルタリング
「使用可能なテーブル」に表示したい テーブルの名前またはタイプを指定するには、「テーブルのフィルタリング」 をクリックします。
最新表示
「使用可能なテーブル」のテーブル・リストを最新表示するには、「最新表示」をクリックします。

「列」タブは、SQL ステートメントによって戻されたデータに含めたい 列を選択するために使用します。「列」タブを使用できるのは、SQL ステートメントのタイプが「Select」の場合だけです。

「列」タブで列を選択すると、SQL ウィザードはその列名を 「検討」タブの SQL ステートメントの SELECT 文節に追加します。

「列」タブで列を選択しないと、デフォルトで SQL ステートメントは 指定したテーブルのすべての 列を選択します。その理由は、「Select」命令のデフォルトの SQL ステートメントが SELECT * from tablename であるためで、 この場合の * は「すべての列」を意味します。

1 つ以上の列を選択するには、以下のようにします。

  1. 「使用可能な列」リストで 1 つ以上の列をクリックします。このリストには、「テーブル」タブで選択したすべてのテーブルのすべての列が含まれます。(リスト中のテーブルの内容を拡張または縮小するには、テーブル名の左の「+」または「-」記号をクリックします。)
  2. 選択した 1 つ以上の列を「選択した列」のリストに追加するには、「>」をクリックします。
「使用可能な列」のリストのすべての列を「選択した列」のリストに追加するには、「>>」をクリックします。

「選択した列」のリストから 1 つ以上の列を除去するには、以下のようにします。

  1. 「選択した列」リスト中の 1 つ以上の列をクリックします。
  2. 選択した 1 つ以上の列を「選択した列」のリストから除去するには、「<」をクリックします。
選択したすべての列を「選択した列」のリストから除去するには、「<<」をクリックします。

上へ移動、下へ移動
これらのボタンは、選択した列の表示順序を変更するために使用します。

SQL ステートメントを実行すると、Z and I Emulator for Web は、 「列」タブで指定したのと同じ順序で「結果」タブに左から右へと列を表示します。

追加
式ビルダーを起動し、列式をビルドするには、このボタンを使用します。

列式とは、その評価された値が結果の列として表示されるようにする式です。

列式はソフトウェア表計算の演算と似ています。その理由は、テーブルの列の値を以下のものと結合できるからです。

列式は、テーブル値に基づく計算の実行とその結果の表示を自動的に行うための非常に強力なツールとなります。

ごく簡単な例を挙げると、テーブル HODTEST.AA01 に SALES という名前の列が含まれ、テーブルの各行の SALES 列に保管された値に基づく 6% の売り上げ歩合の値を計算したい場合、式ビルダーを使用すると、式 HODTEST.AA01.SALES * .06 をビルドまたは入力できます。SQL ステートメントを実行すると、この列式に出力列が生成され、テーブル中の各項目の売り上げ歩合が示されます。

列式に複数の列を使用することもできます。例えば、列 SALARY、BONUS、および COMM の値を追加するには、列式 SALARY + BONUS + COMM をビルドまたは入力することができます。

詳しくは、「式のビルド」を参照してください。

編集
既存の列式を編集するには、このボタンを使用します。次の手順を実行します。
  1. 編集したい列式をクリックします。
  2. 「編集」をクリックします。
削除
列式を削除するには、このボタンを使用します。次の手順を実行します。
  1. 削除したい列式をクリックします。
  2. 「削除」をクリックします。

結合

結合は、選択した列の内容間の等価 (または等しくない、より大きいなどの その他の関係) に基づいて、2 つの関連するテーブルからどの行を SQL ステートメント に含めるかを選択するためのメカニズムです。

「結合」タブを使用できるのは、SQL ステートメントのタイプが「Select」の場合だけです。

「結合」タブの内部域には、「テーブル」タブで選択したテーブルのリストに含めた それぞれのテーブルに対して小さなウィンドウが表示されます。それぞれのテーブルのこの小さなウィンドウには、そのテーブルの列の名前がリスト されます。

「結合」タブの外部域で、タブの右側にあるボタンを使用して結合を 作成および操作します。

色の付いた接続線には以下の意味があります。

結合
新しい結合を作成するには、「結合」をクリックします。次の手順を実行します。
  1. 結合したい最初のテーブルで列名を選択します。
  2. 結合したい 2 番目のテーブルで列名を選択します。
    • 選択した 2 つの列の間で結合が可能な場合には、SQL ウィザードは、列名の間に灰色の線を表示します。
    • 選択した 2 つの列のデータ・タイプが異なるために選択した 2 つの列の間で結合が不可能な場合には、SQL ウィザードは列名の間に赤い線を表示します。
  3. 結合タイプを選択するには、「結合タイプ」キー を使用します (以下の結合タイプを参照) 。デフォルトのタイプは内部結合です。
  4. 結合を作成するには、「結合」をクリックします。SQL ウィザードに、列名を結ぶ青色の線が表示されて、結合が 完了したことが示されます。
<, >
操作する「結合」を選択するには、これらのボタンを使用します。SQL ウィザードは、列名の間に緑色の線を表示し、 現在選択されている結合を示します。
結合解除
既存の結合を解除するには、このボタンを使用します。次の手順を実行します。
  1. 「>」または「>」ボタンを使用して、既存の結合を選択します。
  2. 「結合解除」をクリックします。
結合タイプ
結合演算子と結合タイプを選択するには、このボタンを使用します。結合演算子は以下のいずれかです。 結合タイプは、以下のいずれかです (この説明では、結合演算子は = であるとします) 。

条件

「条件」タブは、以下の 2 つの目的で使用します。

「条件」タブを使用できるのは、SQL ステートメントのタイプが Select、 Update、または Delete の場合だけです。

SELECT ステートメントの結果から重複行を除外するには、「重複行の除外 (SELECT DISTINCT)」チェック・ボックスを選択します。このチェック・ボックスを選択すると、SQL ウィザードは、「検討」タブの SQL ステートメントの SELECT 動詞に DISTINCT 修飾子を追加します。

条件は、「テーブル」タブで選択したテーブルのリストに含めたテーブルから行を選択する際に使用する リモート・データベース・サーバーに対して定義した基準です。1 つ以上の条件を指定できます。ある行が指定したすべての条件を満たしている場合には、リモート・データベース・ サーバーはその行を命令 (Select、Update、または Delete) に含めます。

このタブは、単一の SQL ステートメントにすべての条件を指定するために使用します。

各種コントロールを使用して条件をビルドするか、「条件」フィールドに条件を直接入力することができます。

コントロールを使用して条件をビルドするには、以下のステップに従ってください。

  1. 「使用可能な列」リストから検索する列を選択します。

  2. 「演算子」リストから演算子を選択します。

  3. 「値」リストに 1 つ以上の値を入力します。行ごとに値を 1 つ入力します。「値」リストからすべての値を除去するには、「クリア」をクリックします。

    「演算子」リストで Between 演算子を選択した場合には、「値」リストに行ごとに 2 つの値を入力しなければなりません。これらの値はアンパーサンド (&) で区切ります。

    「検索」をクリックして、適切な値を検索できます。

    「値」リストにホスト変数を指定できます。これを行うには、「値」リストの 1 行をクリックしてから、「変数の追加」をクリックします。「変数の追加」ウィンドウが表示されます。変数名を入力してから、「OK」をクリックします。「変数の追加」ウィンドウが閉じ、変数が「条件」タブの「値」リストに追加されます。

    「値」リストにパラメーターを指定できます。パラメーターを指定すると、その値が検索条件で用いられます。パラメーターは :parm の形式で指定します。parm はパラメーター名です。例えば、:empid と指定すると、empid という名前のパラメーターの指定が有効となります。

  4. 条件を「条件」フィールドに追加するには、「追加」をクリックしま。

  5. ステートメントに追加の検索条件を指定するには、「And」または 「Or」をクリックします。次に 2 番目の検索条件を前のステップでの説明どおりにビルドします。「追加」をクリックすると、後続の条件が「条件」フィールドに既に表示されている条件に加えられます。

「条件」フィールドに条件を入力するには、入力フォーカスを「条件」フィールドに設定して、条件を入力します。

「条件」フィールドを使用すれば、コントロールを使用してビルドした条件を変更または削除することもできます。条件を変更するには、Insert、Delete、Backspace、カーソル移動、および英字キーを使用して、テキストを追加または除去します。条件を削除するには、Delete キーまたは Backspace キーを使用するか、以下のステップに従ってください。

  1. マウスを使用して、条件を強調表示します。
  2. Delete キーを押します。

またシステム・クリップボードと「条件」フィールドの間でテキストをコピーおよび貼り付けできます。

複合条件をビルドするには、「拡張式」をクリックして 「式ビルダー-条件」ウィンドウを開きます (「式のビルド」を参照).

グループ

「グループ」ページを使用して、結果のグループ化に使用する列を指定します。結果をグループ化すると、結果セットのデータは、指定された列の値によって グループ分けされます。各グループごとに 1 行のデータが戻されます。

「グループ」タブを使用できるのは、SQL ステートメントのタイプが「Select」の場合だけです。

複数の列をグループ化することができます。ただし、グループはソートされません。結果セットを ソートする場合は「順序」ページを使用します。

結果セットにグループを組み込むには、以下のステップに従ってください。

  1. 「グループ化列の組み込み」チェック・ボックスを選択します。「列」ページの「選択した列」のリストで指定された列が 「グループ化列」のリストに表示されます。これらは必須グループ化列です。

    このチェック・ボックスが選択され、「列」ページの「選択した列」のリストに列が指定されていない場合は、 使用可能なすべての列が「グループ化列」のリストに表示されます。

  2. 「グループ化列」のリストにさらに列を追加する場合は、以下のステップに従ってください。

    1. 「使用可能な列」のリストで 1 つ以上の列を選択します。リストに特定のテーブルのすべての列が表示されます。テーブルを拡張または縮小して、そのテーブルに含まれる列を表示したり非表示にしたりすることができます。

    2. 列を「グループ化列」のリストに追加するには、「>」をクリックします。「使用可能な列」のリストのすべてのテーブルのすべての列を 「グループ化列」のリストに追加するには、 「>>」 をクリックします。

  3. 「選択した列」のリストから 1 つ以上の列を除去するには、列をクリックしてから 「<」 をクリックします。「選択した列」のリストからすべての列を除去するには、 「<<」 をクリックします。

    「グループ」ページの「選択した列」のリストから必須グループ化列 を除去するには、まず「列」ページの「選択した列」のリストからそれらの列を除去する必要があります。

グループ化した結果のフィルタリング

グループ化列によって戻された結果をフィルタリングして不要なグループ・データを除去することができます。これは、「グループ条件」フィールドに条件を入力するか、または 「拡張式」をクリックして 1 つ以上の条件をビルドすることにより行えます。

順序

「出力」タブに表示された行をソートするには、「順序」タブを使用します。「出力」タブの行は、SQL Select ステートメントを実行したときに、リモート・ データベース・サーバーによって戻された行です。

「順序」タブを使用できるのは、SQL ステートメントのタイプが「Select」の場合だけです。

通常 (すなわち、「順序」タブなしでは)、「出力」タブの行は 行が属するテーブルに現われる順序で表示されます。

「順序」タブがあれば、戻された行のソートに使用したい 1 つ以上の列を 選択できます。例えば、OBJECTID という名前の列を選択して昇順を指定した場合に、 OBJECTID の内容が正の数であれば、戻された行は OBJECTID の最小値 (00001 など) を持つ行から始まって、次に小さい OBJECTID の値 (00004 など) が入っている行へとソートされます。

さらに、

ソート対象の列を選択するには、以下のようにします。
  1. 「使用可能な列」のリストで 1 つ以上の列を選択します。
  2. 「>」をクリックして、その 1 つ以上の列を「選択した列」のリストに移動します。
  3. 「順序」列を使用して、昇順または降順でのソートを選択します。

「出力列のみを表示」ラジオ・ボタンは、常に選択されています。これは、「出力」タブには「列」タブの「選択した列」のリストに含まれる列だけが表示されるということを意味します (列式の結果を含む)。

レビュー

このタブを使用する主要目的は、生成された SQL ステートメントをユーザーが実行できるようにすることです。(管理者が使用不可にしていないかぎり) 以下の操作を行うすることもできます。

挿入

「Insert」タブは、指定したテーブルに追加したい値を指定するのに使用します。値を挿入すると、「テーブル」タブで指定したテーブルに列が作成され、「Insert」タブで指定した値がその行に入れられます。

挿入する値を指定するには、 該当列に挿入される値を「値」フィールドに入力します。

すべてのヌル以外の 列に値を入力しなければなりません。ヌル以外の列は正符号 (+) で示されます。

ヌル列に値を指定する必要はありません。

更新

「更新」タブは、指定したテーブルで変更したい値を指定するのに使用します。値を更新すると、「更新」タブで指定した値が「テーブル」タブで指定したテーブルに入れられます。

変更する値を指定するには、 「値」フィールドに、その列で更新される値を入力してください。

行のすべての値を更新する必要はなく; ただ更新したい列に値を入力すればよいだけです。

少なくとも 1 つの列に値を入力しなければなりません。

関連トピック

  • データベース・アクセスの概要
  • 出力 (SQL ウィザード)
  • 結果 (SQL ウィザード)