基本 SELECT プロトタイピングの使用例
以下では、例を使用して、基本 SELECT プロトタイピングを使用して SELECT ステートメントを作成し、それを実行して結果を参照する方法を示します。
表 DSN8810.EMP の中の、以下のようなすべての社員の詳細をリストするとします。
- 部門が
E01
でない、および - JOB が
Manager
であるか「SALARY」が少なくとも $40,000 である
- LASTNAME
- FIRSTNME
- WORKDEPT
- JOB
- SALARY (昇順)
- BONUS
2 次「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」パネルには、複数の列についての詳細を一度に指定することができます。しかし、明確にする目的から、以下のステップでは、個々の列ごとに一度に 1 つずつ詳細を入力し、ENTER キーが押された後に FM/Db2 が漸進的に作成する結果の SELECT ステートメント (パネルの上部に表示されます) を示しています。
ステップ 1
「S」入力フィールドに「
S
」を入力することによって、列 LASTNAME を選択します。S LOp ( Tab Column Name Data Type(length) Op Value ) ⋮ s ___ _ #1 LASTNAME VARCHAR(15) _____________________ _ ⋮
FM/Db2 は生成済み SELECT ステートメントを次の方法で更新します。
- 選択された列の名前 (LASTNAME) を SELECT 文節に追加します。
SELECT #1.LASTNAME FROM DSN8810.EMP #1, DSN8810.EEMP #2 WHERE ? ORDER BY ?
ステップ 2
「S」入力フィールドに「
S
」を入力することによって、列 FIRSTNME を選択します。S LOp ( Tab Column Name Data Type(length) Op Value ) ⋮ s ___ _ #1 FIRSTNME VARCHAR(12) _____________________ _ ⋮
FM/Db2 は生成済み SELECT ステートメントを次の方法で更新します。
- 選択された列の名前 (FIRSTNME) を SELECT 文節に追加します。
SELECT #1.LASTNAME, #1.FIRSTNME FROM DSN8810.EMP #1, DSN8810.EEMP #2 WHERE ? STNAME <> 'SMITH' ORDER BY ?
ステップ 3
WORKDEPT「E01」の社員を除外するには、以下のようにします。
- 「S」入力フィールドに「
S
」を入力することによって、列 WORKDEPT を選択します。 - 式演算子
<>
を「Op」入力フィールドに入力して、 E01
を「Value (値)」入力フィールドに入力します。
S LOp ( Tab Column Name Data Type(length) Op Value ) ⋮ s ___ _ #1 WORKDEPT CHAR(3) <> e01__________________ _ ⋮
FM/Db2 は生成済み SELECT ステートメントを次の方法で更新します。
- 選択された列の名前 (WORKDEPT) を SELECT 文節に追加します。
- 述部
#1.WORKDEPT <> 'E01'
を WHERE 文節に追加します。
SELECT #1.LASTNAME, #1.FIRSTNME, #1.WORKDEPT FROM DSN8810.EMP #1, DSN8810.EEMP #2 WHERE #1.WORKDEPT <> 'E01' ORDER BY ?
ステップ 4
JOB が「MANAGER」の社員を選択するには、以下のようにします。
- 「S」入力フィールドに「
S
」を入力することによって、列 JOB を選択します。 - 左括弧
(
を「(」入力フィールドに入力して、 MANAGER
を「Value (値)」入力フィールドに入力します。
S LOp ( Tab Column Name Data Type(length) Op Value ) ⋮ s ___ ( #1 JOB CHAR(8) manager______________ _ ⋮
FM/Db2 は生成済み SELECT ステートメントを次の方法で更新します。
- 選択された列の名前 (JOB) を SELECT 文節に追加します。
- 述部
AND
を WHERE 文節に追加する前に、デフォルトの論理演算(#1.JOB = 'MANAGER'
を挿入します。
SELECT #1.LASTNAME, #1.FIRSTNME, #1.WORKDEPT, #1.JOB FROM DSN8810.EMP #1, DSN8810.EEMP #2 WHERE #1.WORKDEPT <> 'E01' AND (#1.JOB = 'MANAGER' ORDER BY ?
ステップ 5
また、SALARY が少なくとも $40,000 の社員を (その JOB とは無関係に) 選択し、結果が SALARY の昇順で表示されるように指定するには、以下のようにします。
- 「S」入力フィールドに「
A
」を入力することによって、列 SALARY を昇順用に選択します。 - 論理演算子「
OR
」を「LOp」入力フィールドに入力します。 - 式演算子
>=
を「Op」入力フィールドに入力して、 - 「
40000
」を「Value (値)」入力フィールドに入力します。 - 右括弧を「)」入力フィールドに入力します。
S LOp ( Tab Column Name Data Type(length) Op Value ) ⋮ a or_ _ #1 SALARY DECIMAL(9,2) >= 40000________________ ) ⋮
FM/Db2 は生成済み SELECT ステートメントを次の方法で更新します。
- 選択された列の名前 (SALARY) を SELECT 文節に追加します。
- 述部
OR #1.SALARY >= 40000)
を WHERE 文節に追加します。 - 選択された列の名前 (SALARY) およびキーワード「
ASC
」を ORDER BY 文節に追加します。
SELECT #1.LASTNAME, #1.FIRSTNME, #1.WORKDEPT, #1.JOB, #1.SALARY FROM DSN8810.EMP #1, DSN8810.EEMP #2 WHERE #1.WORKDEPT <> 'E01' AND (#1.JOB = 'MANAGER' OR #1.SALARY >= 40000) ORDER BY #1.SALARY ASC
ステップ 6
「S」入力フィールドに「
S
」を入力することにって、列 BONUS (表 DSN8810.EEMP から) を選択します。S LOp ( Tab Column Name Data Type(length) Op Value ) ⋮ s ___ _ #2 BONUS DECIMAL(9,2) _____________________ _ ⋮
FM/Db2 は生成済み SELECT ステートメントを次の方法で更新します。
- 選択された列の名前 (BONUS) を SELECT 文節に追加します。
SELECT #1.LASTNAME, #1.FIRSTNME, #1.WORKDEPT, #1.JOB, #1.SALARY, #2.BONUS FROM DSN8810.EMP #1, DSN8810.EEMP #2 WHERE #1.WORKDEPT <> 'E01' AND (#1.JOB = 'MANAGER' OR #1.SALARY >= 40000) ORDER BY #1.SALARY ASC
2 次「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」パネルでまとめて入力された詳細 は、すべての列の詳細を同時に入力した場合に「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」パネルがどのように表示されるかを 示しています。
注: (上記のステップのように) 一度に 1 つの列に詳細を入力する場合と、一度に複数の列の詳細を入力した場合では、影響が異なることがあります。
例えば、2 次「Basic SELECT Prototyping (基本 SELECT プロトタイピング)」パネルでまとめて入力された詳細 に示されているように詳細を入力した場合には、生成された SELECT ステートメントで LASTNAME の前に FIRSTNME が表示されます。
Process Options Utilities Help
────────────────────────────────────────────────────────────────────────────────
FM/Db2 (DFG2) Basic SELECT Prototyping Row 1 to 8 of 14
SELECT ?
FROM DSN8810.EMP #1, DSN8810.EEMP #2
WHERE ?
ORDER BY ?
Row count ALL 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 )
⋮
s ___ _ #1 FIRSTNME VARCHAR(12) _____________________ _
⋮
s ___ ( #1 JOB CHAR(8) manager______________ _
s ___ _ #1 LASTNAME VARCHAR(15) _____________________ _
⋮
a or_ _ #1 SALARY DECIMAL(9,2) >= 40000________________ )
⋮
s ___ _ #1 WORKDEPT CHAR(3) <> e01__________________ _
⋮
s ___ _ #2 BONUS DECIMAL(9,2) _____________________ _
⋮
Command ===> _____________________________________________________ Scroll PAGE
F1=Help F2=Split F3=Exit F4=Expand F6=Execute F7=Backward
F8=Forward F9=Swap F10=Left F11=Right F12=Cancel
関連するタスク
関連した参照