SQL ウィザード (Java 1 ブラウザー)
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 データにアクセスできます (「ログオン」タブの 「データベースの URL」 フィールドを参照) 。
他のホスト・プラットフォームで稼働中のデータベース・サーバーがサポートされるのは、Z and I Emulator for Web または Database On-Demand クライアント・ワークステーションに該当する JDBC ドライバーがインストールされている場合だけです (「ログオン」タブの 「データベースの URL」フィールドを参照) 。
SQL ウィザードのユーザー・インターフェースは、処理するテーブルを選択し、 データが戻される列を選択し、処理する行の選択条件を指定し、戻された データをソートする列を選択して有効な SQL ステートメントの作成を助けます。戻されたデータは、表示するかまたはファイルに書き込むことが できます。XML を含む各種のファイル形式がサポートされます。SQL ステートメントにはラベルを付けて、再利用のために保管する ことができます。
このウィザードの一部のフィールドは、管理者がクライアントまたは ユーザー ID をデフォルト値に設定するように構成している場合は、 そのように設定できます。
一連のタブによって、SQL ステートメントの作成および実行プロセスが ガイドされます。これらのタブは次のとおりです。
ログオン
- データベース URL
- 「データベースの URL の指定」を 参照してください。
SQL ウィザードが 5250 ディスプレイ・セッションから起動されている 場合、SQL ウィザードは初めに「データベースの URL」フィールドに 現行 iSeries ホストの名前を含んだデフォルトのデータベースの URL を 表示します。
- ユーザー ID
- リモート・データベース・サーバーへのログオンにユーザー ID が 必要な場合には、「ユーザー ID」フィールドにユーザー ID を入力して ください。そうでなければ、このフィールドはブランクのままにしておきます。
- パスワード
- リモート・データベース・サーバーへのログオンにパスワードが 必要な場合には、「パスワード」フィールドにパスワードを入力して ください。そうでなければ、このフィールドはブランクのままにしておきます。
- テーブル・フィルター (SQL ウィザード)
- このフィールドは、Z and I Emulator for Web 管理者が使用可能にしていなければ表示されません。
スキーマ名、スキーマ・フィルター、テーブル名、およびテーブル・フィルターの コンマで区切られたリストを入力します。具体的には、「例」を参照してください。スキーマ名、スキーマ・フィルター、テーブル名、テーブル・フィルターの詳細説明については、「使用可能なスキーマおよびテーブルのリストの指定」を参照してください。
このフィールドに入力したコンマで区切られたリストは、データベースへのログオン後に SQL ウィザードの 「テーブル」タブの「使用可能なテーブルのリスト」に表示したい スキーマおよびテーブルを指定します。
デフォルト値を使用する場合は、このフィールドをブランクのままにしておきます。
この「テーブル・フィルター」フィールドは、使用可能なテーブルのリストの いくつかのフィルタリング・レベルのうちの 1 つです (「レベル 4. 現行 SQL または File Upload ステートメントの値」を参照) 。
- ドライバーの説明
- このリスト・ボックスには、Z and I Emulator for Web に登録されているすべての JDBC ドライバーの名前が含まれています。このリスト・ボックスを展開して、使用する登録済み JDBC ドライバーの名前をクリックするか、「その他」をクリックして別のドライバーを指定します。
Z and I Emulator for Web クライアントまたは Database On-Demand クライアントでの JDBC ドライバーの一般的な使用法については、 「JDBC ドライバーの登録」を参照してください。
- クラス名
- このフィールドには、「ドライバーの説明」フィールドに指定した JDBC ドライバーの完全修飾 Java クラス名が入っていなければなりません。
- 「ドライバーの説明」フィールドで登録されたドライバーの名前 を選択した場合には、SQL ウィザードのこのフィールドにユーザー用の 完全修飾 Java クラス名が表示されて、これを変更することはできません。
- しかし、「ドライバーの説明」フィールドで「その他」を選択して いる場合には、このフィールドにそのドライバーの完全修飾クラス名を入力 しなければなりません。大文字小文字が区別されます (
COM
は com
とは異なります)。完全修飾クラス名が分からない場合は、ドライバーの提供元に連絡してください。
ドライバーはクライアント・ワークステーションにインストールされていて、Z and I Emulator for Web クライアントまたは Database On-Demand クライアントにアクセス可能でなければなりません (「 JDBC ドライバーのデプロイ」を参照) 。
- 接続および切断
- リモート・データベース・サーバーに接続するには、「接続」 をクリックします。
接続に失敗して Java エラー・メッセージが表示されたか、または Netscape 4.7x が稼働中の場合には、 「ログオンまたは接続時の問題」を参照 してください。
リモート・データベース・サーバーから切断するには、「切断」 をクリックします。
テーブル
- ステートメント・タイプ
-
- 選択
- 1 つ以上のテーブルから行を選択するには、「Select」を クリックします。
- Select Unique
- 選択ステートメントの結果から重複行を除外するには、 「Select Unique」をクリックします。このチェック・ボックスを選択すると、SQL ウィザードは 「SQL」タブの SQL ステートメントの SELECT の動詞に DISTINCT 修飾子 を追加します。
- 挿入
- テーブルに行を追加するには、「Insert」をクリックします。
- 更新
- テーブルの 1 行以上を更新するには、「Update」をクリックします。
- 削除
- テーブルから 1 行以上を削除するには、「Delete」をクリックします。
- テーブルの選択
- これは、現行のSQL ステートメントで使用するのに利用できる スキーマおよびテーブルのリストです (「使用可能な テーブルのリスト」を参照)。
このリストの内容は、いくつかのレベルのフィルタリングによって 決定されます (「スキーマ名およびテーブル名の フィルタリングのレベル」を参照) 。
現行の SQL ステートメントで使用するテーブルを選択するには、テーブル名の 横にあるチェック・ボックスを選択します。
以下のことに注意してください。
- Insert、Update、および Delete 命令の場合には、1 つのテーブルしか選択できません。
- Select 命令の場合には、複数のテーブルを選択できます。
SQL ステートメントのタイプが「Select」の場合には、SQL ウィザード は選択したテーブルの名前を「SQL」タブの SQL ステートメントの FROM 文節に 追加します。
- スキーマの表示
- 「テーブルの選択」の下の使用可能なテーブルのリストに 表示したいスキーマの名前を選択するには、「スキーマのフィルタリング」 をクリックします。
- テーブルのフィルタリング
- 「テーブルの選択」の下の使用可能なテーブルのリストに 表示したいテーブルの名前またはタイプを選択するには、「テーブルのフィルタリング」 をクリックします。
- 最新表示
- 「テーブルの選択」の下の使用可能なテーブルのリストの テーブルのリストを最新表示するには、「最新表示」を クリックします。
結合
結合は、選択した列の内容間の等価 (または等しくない、より大きいなどの その他の関係) に基づいて、2 つの関連するテーブルからどの行を SQL ステートメント に含めるかを選択するためのメカニズムです。
「結合」タブを使用できるのは、SQL ステートメントのタイプが「Select」の 場合だけです。
「結合」タブの内部域には、「テーブル」タブで選択したテーブルのリストに含めた それぞれのテーブルに対して小さなウィンドウが表示されます。それぞれのテーブルのこの小さなウィンドウには、そのテーブルの列の名前がリスト されます。
「結合」タブの外部域で、タブの右側にあるボタンを使用して結合を 作成および操作します。
色の付いた接続線には以下の意味があります。
- ライト・グレー - 提案された結合。
- 青色 - 既存の結合。
- 赤色 - 現在選択されている結合。
- 結合
- 新しい結合を作成するには、「結合」をクリックします。次の手順を実行します。
- 結合したい最初のテーブルで列名を選択します。
- 結合したい 2 番目のテーブルで列名を選択します。
- SQL ウィザードに、選択した 2 つの列の間を結ぶライト・グレーの 線が表示され、2 つの列が結合の候補として提案されたことが示されます。
- 選択した 2 つの列の間で結合が可能な場合には、SQL ウィザードで「結合」ボタンが使用可能になります。
- 選択した 2 つの列のデータ・タイプが異なるために 選択した 2 つの列の間で結合が不可能な場合には、SQL ウィザード で「結合」ボタンが使用不可になります。
- 結合タイプを選択するには、「結合タイプ」キー を使用します (以下の結合タイプを参照) 。デフォルトのタイプは内部結合です。
- 結合を作成するには、「結合」をクリックします。SQL ウィザードに、列名を結ぶ青色の線が表示されて、結合が 完了したことが示されます。
- <, >
- 操作する「結合」を選択するには、これらのボタンを使用します。SQL ウィザードに、列名を結ぶ赤色の線が表示されて、 現在選択されている結合が示されます。
- 結合解除
- 既存の結合を解除するには、このボタンを使用します。次の手順を実行します。
- 「>」または「>」ボタンを使用して、既存の結合を選択します。
- 「結合解除」をクリックします。
- 結合タイプ
- 結合演算子と結合タイプを選択するには、このボタンを使用します。結合演算子は以下のいずれかです。 結合タイプは、以下のいずれかです (この説明では、結合演算子は = であるとします) 。
- 内部結合。処理には以下の行が選択されます。
- 結合される列の内容が等しい左側のテーブルと右側のテーブルの行。
- 左方外部結合。処理には以下の行が選択されます。
- 左側のテーブルのすべての行。
- 結合される列の内容が等しい右側のテーブルからの行。
- 右方外部結合。処理には以下の行が選択されます。
- 結合される列の内容が等しい左側のテーブルからの行。
- 右側のテーブルのすべての行。
条件
1 つ以上の行の選択条件を指定するには、「条件」タブを使用します。指定した条件を満たす行が「結果」タブ (Select タイプ)、または 更新 (Update タイプ)、あるいは削除 (Delete タイプ) に表示されます。
「条件」タブを使用できるのは、SQL ステートメントのタイプが Select、 Update、または Delete の場合だけです。
条件は、「テーブル」タブで選択したテーブルのリストに含めたテーブルから行を選択する際に使用する リモート・データベース・サーバーに対して定義した基準です。1 つ以上の条件を指定できます。ある行が指定したすべての条件を満たしている場合には、リモート・データベース・ サーバーはその行を命令 (Select、Update、または Delete) に含めます。
このタブは、単一の SQL ステートメントに 1 つの条件を指定するために使用します。複数の条件を指定する必要がある場合には、以下で説明するように 「別の列を検索」ボタンを使用してください。
条件を作成するには、以下のステップに従ってください。
- 「選択したテーブル」リスト・ボックスを展開して、 その条件で使用したいテーブルを選択します。このリスト・ボックスには、「テーブル」タブで選択したテーブルのリストに 含めたすべてのテーブルの名前が含まれています。
- 「列」リスト・ボックスで、条件をテストしたい 列を選択します。
- 「演算子」リスト・ボックスで、その条件に 使用したい演算子を選択します。
- 「値」リスト・ボックスで、その条件に使用したい 1 つ以上の値を指定します。以下を行うことができます。
- フィールドに直接値を入力します。あるいは
- 「検索」をクリックして、選択したテーブルおよび 列の値を検索します。
- 条件の指定を終了したら、処理したい次のタブへ進むか、 または「別の列を検索」をクリックして別の条件を 指定します。
- 検索
- 「検索」をクリックして「値の検索」ウィンドウを 開いて、この条件で選択したテーブルおよび列の値を検索します。「値の検索」ウィンドウを使用するには、以下のステップに従ってください。
- 検索したい文字ストリングまたは値を「検索対象」フィールドに入力します。
- 大文字および小文字を入力したとおりに正確に検索したい場合には、 「大文字小文字の区別」にチェックしてください。
- 最大ヒット数の値を選択します。これは、各検索で戻される値の数を制御します。
- 「いますぐ検索」をクリックします。「値の検索」ウィンドウでは、指定した列の指定したテーブルの各行で、 指定した文字ストリングまたは値が入っている値が検索されます。
- 「値の検索」ウィンドウに、「使用可能な値」ウィンドウの 検索結果が表示されます。それぞれの値について 1 つのインスタンスだけが表示されます。例えば、検索ストリングが
device
で、そのテーブルに 指定した列に Open device
が入っている行が 40 行あり、 指定した列に Close device
が入っている行が 12 行ある場合には、 「値の検索」ウィンドウには Open device
の 1 つのインスタンスと Close device
の 1 つのインスタンスが表示されます。
- 検索結果の表示を終了したら、次のアクションの一方または両方を 実行してください。
- 条件に値を使用するには、リストで 1 つ以上の値を選択して 「複数の値を使用」をクリックします。
- ウィンドウを閉じるには、「OK」をクリックします。
- クリア
- 「値」フィールドからすべての値を消去するには、「クリア」 をクリックします。
- 別の列を検索
- 新しい条件を作成するには、「別の列を検索」をクリックします。SQL ウィザードに別の「条件」タブが作成されます。
- より少ない行の検索 (AND)、より多い行の検索 (OR)
- 最初以降のすべての「条件」タブで、これらのラジオ・ボタンの 1 つ をクリックして、現在の条件と前の条件との間の論理関係 (AND または OR) を示します。
- 条件の削除
- 現在の条件を削除するには、「条件の削除」をクリックします。
列
「列」タブは、SQL ステートメントによって戻されたデータに含めたい 列を選択するために使用します。「列」タブを使用できるのは、SQL ステートメントのタイプが「Select」の場合だけです。
「列」タブで列を選択すると、SQL ウィザードはその列名を 「SQL」タブの SQL ステートメントの SELECT 文節に追加します。
「列」タブで列を選択しないと、デフォルトで SQL ステートメントは 指定したテーブルのすべての 列を選択します。その理由は、「Select」命令のデフォルトの SQL ステートメントが SELECT * from tablename
であるためで、 この場合の *
は「すべての列」を意味します。
- 追加 >>
- このボタンは、SQL 選択ステートメントによって戻されたデータに 含める列を選択するために使用します。列を「組み込む列」のリストに追加するには:
- 「選択したテーブル」リストでテーブルの名前をクリックします。このリストには、「テーブル」タブで選択したすべてのテーブルの名前が含まれています。
- 「列」リストで 1 つ以上の列を選択します。このリストには、選択したテーブルのすべての列が入っています。
- 「追加 >>」をクリックします。
- << 削除
- このボタンは、「組み込む列」のリストから列を除去するために使用します。リストから 1 つ以上の列を除去するには:
- 除去したい列を選択します。
- 「<< 削除」をクリックします。
- すべて選択、すべて選択解除
- これらのボタンは、両方のリストですべての列を選択または選択解除するために使用します。
- 上へ移動、下へ移動
- これらのボタンは、選択した列の表示順序を変更するために使用します。
SQL ステートメントを実行すると、SQL ウィザードには、 「列」タブで指定したのと同じ順序で「結果」タブの左から右へと 列が表示されます。
ソート
「出力」タブに表示された行をソートするには、「ソート」タブを使用します。「出力」タブの行は、SQL Select ステートメントに応答してリモート・ データベース・サーバーによって戻された行です。
「ソート」タブを使用できるのは、SQL ステートメントのタイプが「Select」の場合だけです。
通常 (すなわち、「ソート」タブなしでは)、「出力」タブの行は 行が属するテーブルに現われる順序で表示されます。
「ソート」タブがあれば、戻された行のソートに使用したい 1 つ以上の列を 選択できます。例えば、OBJECTID という名前の列を選択して昇順を指定した場合に、 OBJECTID の内容が正の数であれば、戻された行は OBJECTID の最小値 (00001 など) を持つ行から始まって、次に小さい OBJECTID の値 (00004 など) が入っている行へとソートされます。
さらに、
- 戻された行のソートに複数の列を選択できます。
- 行は、まず指定した最初の列 (OBJECTID など) の内容に従ってソートされます。
- 次に、最初の列に同じ値を持つ各行グループ (例えば、 列 OBJECTID に値 00007 を持つすべての行) について、行は指定した 2 番目の列 (SEVRITY など) の値に従ってソートされます。
- 指定した追加の各列に対してこのプロセスが続けられます。
- 各列に対して昇順または降順のソートを指定できます。
- 追加 >>
- このボタンは、ソートする列を選択するために使用します。「ソート対象の列」のリストに列を追加するには:
- 「選択したテーブル」リストでテーブルの名前をクリックします。このリストには、「テーブル」タブで選択したすべてのテーブルの名前が含まれています。
- 「列」リストで 1 つ以上の列を選択します。このリストには、選択したテーブルのすべての列が入っています。
- 「追加 >>」をクリックします。
- << 削除
- このボタンは、「ソート対象の列」のリストから列を除去する ために使用します。リストから 1 つ以上の列を除去するには:
- 除去したい列を選択します。
- 「<< 削除」をクリックします。
- すべて選択、すべて選択解除
- これらのボタンは、両方のリストですべての列を選択または選択解除するために使用します。
- ソート順
- 昇順または降順のソートを指定するには、「昇順」または「降順」を 選択します。
- 上へ移動、下へ移動
- これらのボタンは、選択した列のソートに使用する順序を変更する ために使用します。
SQL ステートメントを実行すると、SQL ウィザードは、最初に 「ソートする列」リストに指定された最初の列で戻された データをソートし、次にリストに指定された 2 番目の列でソートし、 同様に以後の列でソートを続けていきます。
SQL
このタブを使用する主要目的は、生成された SQL ステートメントをユーザーが実行できるようにすることです。以下の操作を実行することもできます。
-
生成された SQL ステートメントに変更を入力します。
- 生成された SQL ステートメントに (文字の追加または削除によって) 変更を入力してから、「保管」ボタンを使用してステートメントを保管すると、SQL ウィザードの他のタブのコントロール (「条件」タブの演算子など) を使用して SQL ステートメントを変更することはできなくなるということに注意してください。
- 生成された SQL ステートメントに最初に変更を入力しようとした時点で、SQL ウィザードはこの影響に対する警告メッセージを表示します。
- 生成された SQL ステートメントに変更を入力しても、「保管」をクリックしてそのステートメントを保管するまでは、変更は永続的なものになりません。
- 「保管」をクリックしていない場合にのみ、入力した変更を元に戻すことができます。入力した変更を元に戻すには、以下のいずれかの操作を行ってください。
- 「元に戻す」をクリックします。
- SQL ウィザードの別のタブをクリックします。
-
生成された SQL ステートメントをクリップボードにコピーします。コピーされると、クリップボードの内容を、クリップボードからのテキスト・データを受け入れるその他の任意のアプリケーションに、 貼り付けることができます。SQL 照会は実行するが、SQL 照会の生成またはテストが簡単にできない別のアプリケーションがある場合には、 この機能が有用です。
- 元に戻す
- SQL ステートメントに入力した変更を元に戻します。「元に戻す」は、「保管」ボタンを使用して SQL ステートメントを保管していない場合にのみ機能します。「保管」をクリックしていなければ、SQL ウィザードの別のタブをクリックしても、入力した変更を元に戻すことができます。
- 実行
- SQL ステートメントを実行のためにリモート・データベース・サーバーに送ります。
- 保存
- 後で再使用するために SQL ステートメントを保管します。複数回実行する共通の SQL ステートメントを保管するには、この機能を使用することができます。月間売上報告書を表示する照会、または過去 6 か月間に購入のあった顧客のリストを生成する 照会などは保管する対象となる照会のよい例です。
- 生成された SQL ステートメントに変更を入力してから、「保管」ボタンをクリックすると、SQL ウィザードの他のタブのコントロール (「条件」タブの演算子など) を使用して SQL ステートメントを変更できなくなります。
挿入
このタブが表示されるのは、「テーブル」タブで「Insert」SQL ステートメント・タイプを選択した場合だけです。「Insert」によって、選択したテーブルに新しい行を挿入することができます。
「Insert」タブを終了したら、「次へ」をクリックします。
「Insert」の列情報は次のとおりです。
- 列 1 はデータベース行の列の名前です。これは FIELD1 または FIELD2 などの汎用的なものにするか、 あるいは NAME または AGE などと説明的な意味のものとすることができます。
- 列 2 は、データベースのこの列に存在するデータのタイプを示します。例えば、CHAR(4) は、この列に入れることができるのは最大 4 文字であることを示します。
- 列 3 は等号 (=) が前にあります。この列を使用して、 新規行を作成する時に、データベースの列で更新したいデータを入力します。例えば、データベースに自動車部品が含まれていて、タイプが DOUBLE(8) の PART# と呼ばれるフィールドがある場合には、10345 と 入力して「ハンドル」の新しい部品番号を表すことができます。
更新
このタブが表示されるのは、「テーブル」タブで「Update」SQL ステートメント・タイプを選択した場合だけです。「Update」によって、既存のデータベース行のデータを変更することができます。
「Update」タブを終了したら、「次へ」をクリックします。
「Update」の列情報は次のとおりです。
- 列 1 はデータベース行の列の名前です。これは FIELD1 または FIELD2 などの汎用的なものにするか、 あるいは NAME または AGE などと説明的な意味のものとすることができます。
- 列 2 は、ユーザー・データベースのこの列に存在するデータのタイプを示します。例えば、CHAR(4) は、この列に入れることができるのは最大 4 文字であることを示します。
- 列 3 は等号 (=) が前にあります。この列を使用して、 新規行を作成する時に、データベースの列で更新したいデータを入力します。例えば、データベースに自動車部品が含まれていて、PART# と呼ばれる フィールドに 10345 でなく 01234 と誤ってリストされた「ハンドル」の 部品番号がある場合には、最初の列に入っている PART# 行に 10345 と入力します。
関連トピック