Enterprise Managerによるビューの作成SQL実践講座(16)

» 2001年11月15日 00時00分 公開
[篠原光太郎@IT]

 今回は、SQL Server Enterprise Manager(以下、Enterprise Manager)によるビューの作成にチャレンジします。SQL Server 2000のEnterprise Managerは、ビジュアル環境でのビュー作成が可能ですので、前回紹介したCREATE VIEW文の作成と併せて使用すると非常に効果的です。

KeppinListビューのデザイン画面

 まず、前回作成したKeppinListビューの定義を確認してみましょう。

Enterprise Managerでビューの定義を確認する

(1) Enterprise Managerを起動する

(2) 左端に表示される「ツリー」で、以下を順に展開し、最後に「ビュー」を選択する

1.Microsoft SQL Servers
2. SQL Server グループ
3. サーバー名
4. データベース
5. Northwind
6. ビュー

画面1 Enterprise Managerによるビューの一覧表示(画面をクリックすると拡大表示します) 画面1 Enterprise Managerによるビューの一覧表示(画面をクリックすると拡大表示します)

(3) 右側に表示されるビューリストから「KeppinList」を右クリックし、「プロパティ」を選択する

画面2 ビューの一覧から特定のビューを選択して右クリック。プロパティを表示させる(画面をクリックすると全体を表示します) 画面2 ビューの一覧から特定のビューを選択して右クリック。プロパティを表示させる(画面をクリックすると全体を表示します)

(4) 表示される結果は以下のとおり

画面3 KeppinListのプロパティを表示したところ(画面をクリックすると拡大表示します) 画面3 KeppinListのプロパティを表示したところ(画面をクリックすると拡大表示します)

 前回作成したKeppinListビューの定義が表示されます。SQLクエリアナライザで実行したCREATE VIEW文が、そのままの形で保存されているのが確認できます。では次に、ビューのデザイン画面を表示してみましょう。

ビューのデザイン画面を表示させる

(1) ビューリストから「KeppinList」を選択し、右クリックで表示されるメニューから「ビューのデザイン」を選択する

画面4 ビューの一覧からビューのデザイン画面を表示させる(画面をクリックすると全体を表示します) 画面4 ビューの一覧からビューのデザイン画面を表示させる(画面をクリックすると全体を表示します)

(2) 表示される結果は以下のとおり

画面5 ビューのデザイン画面。縦方向に4つのペインに分割されている(画面をクリックすると拡大表示します) 画面5 ビューのデザイン画面。縦方向に4つのペインに分割されている(画面をクリックすると拡大表示します)

 表示されたビューのデザイン画面は、縦に4つの部分に分かれています。上から順番に見ていきましょう。

 一番上の部分が「ダイアグラムペイン」で、ビューの定義で使用するテーブルが表示されます。KeppinListビューで使用しているProductsテーブルが小さなウィンドウで表示されているのが確認できますね。また、Productsテーブルウィンドウの中にリストされているのは、Productsテーブルで定義されているカラムのリストです。

 デザイン画面の上から2番目が「グリッドペイン」です。グリッドペインには、結果として表示するカラムとその別名の指定、グループ化の指定、抽出条件の指定が表示されます。KeppinListビューでは、「SELECT *」とすべてのカラムを結果として表示するよう指定しましたので、グリッドの一番上の行に「*」というカラムが表示されています。また、「出力」カラムにチェックマークがついているのが確認できますね。これは、結果として表示するカラムであることの指定です。

 グリッドペインの2行目と3行目は、KeppinListビューで「WHERE UnitsInStock = 0 AND Discontinued = 0」と指定した抽出条件が表示されています。UnitsInStockカラムとDiscontinuedカラムに対して、グリッドの「抽出条件」カラムに「=0」と指定されているのが確認できます。

 グリッドペインには「並べ替えの種類」と「並べ替えの順序」という2つのカラムがありますが、ビューの定義には使用できません。また、グループ化の指定も可能ですが、KeppinListビューにはGROUP BYを指定しませんでしたので、後ほど紹介しましょう。

 さて、デザイン画面の上から3番目が「SQLペイン」です。SQLペインには、ダイアグラムペインとグリッドペインで指定したビューの定義内容に従ったSELECT文が表示されます。また、SQLペインに直接SQL文を入力することで、ダイアグラムペインやグリッドペインで指定できない細かな条件を指定したビューの作成も可能です。

 デザイン画面の一番下が「結果ペイン」です。ビューのデザイン画面の初期表示状態では何も表示されていませんが、アイコンバーの「実行」ボタンをクリックすることで、SQLペインに表示されているSELECT文を実行した結果を表示させることが可能です。この機能により、ビューを作成する前に結果リストのデータ確認ができます。非常に便利な機能ですね。

画面6 アイコンバーの「実行」ボタンをクリックすることで、画面5の一番下にある「実行ペイン」にSELECT文の実行結果を表示できる(画面をクリックすると全体を表示します) 画面6 アイコンバーの「実行」ボタンをクリックすることで、画面5の一番下にある「実行ペイン」にSELECT文の実行結果を表示できる(画面をクリックすると全体を表示します)

KeppinOrderProductsビューのデザイン画面

 次に、KeppinOrderProductsビューのデザイン画面も見てみましょう。

画面7 KeppinOrderProductsビューのデザイン画面を開いたところ(画面をクリックすると拡大表示します) 画面7 KeppinOrderProductsビューのデザイン画面を開いたところ(画面をクリックすると拡大表示します)

 KeppinOrderProductsビューは、Order DetailsテーブルとKeppinListビューを使用して定義されているので、ダイアグラムペインにこれら2つのテーブルが表示されているのが確認できます(ここでは、KeppinListビューもテーブルと標記します)。また、これら2つのテーブルが、太いパイプのような線で結ばれています。このパイプは、結合(JOIN)を意味し、結合線と呼びます。KeppinOrderProductsビューは、Order DetailsテーブルとKeppinListビューをProductIDをキーにして結合したため、それぞれのProductIDカラムが結合線で結ばれているのが分かりますね。

 パイプの真中にあるダイアモンド記号()は、結合のタイプを表します。◇は内部結合を表しており、外部結合の場合は、記号が変化します。◇を右クリックし、表示されたメニューから「プロパティ」を選択し、結合線のプロパティを表示させてみましょう。

画面8 結合線のプロパティを表示させたところ(画面をクリックすると拡大表示します) 画面8 結合線のプロパティを表示させたところ(画面をクリックすると拡大表示します)

 Order Detailsテーブル(別名ordd)のProductIDカラムと、KeppinListテーブル(別名Kep)のProductIDカラムが等結合しているのが分かりますね。ダイアログボックス下半分の「行の範囲」の部分は、外部結合の指定です。「orddのすべての行」をチェックすると、左外部結合となります。実際にチェックをしてみると、左下に表示されている記号が変化することが確認できます。

 さて、KeppinOrderProductsビューのデザイン画面に戻ります。KeppinOrderProductsビューは、ProductIDとProductNameでグループ化し、結果としてProductID、ProductName、そしてQuantity(個数)の合計を表示させる指定をしました。この様子が、グリッドペインに表示されています。この3つのカラムが行として表示されており、3カラムともグリッドの「表示」カラムにチェックが入っています。また、Quantityカラムは、別名としてQuantitySumが指定されています。そして、グリッドの「グループ化」カラムには、ProductIDとProductNameに対して「グループ化」の指定、Quantityに対して「合計」の指定がされています。また、ダイアグラムペインに表示されているそれぞれのテーブルのカラムリストには、グループ化と合計を表す記号がそれぞれ表示されているのが確認できますね。

 次に、SQLペインに表示されているSQL文を見てみましょう。前回、KeppinOrderProductsビューを作成したときのSELECT文とは違っているのが分かりますか?前回は、結合をWHERE句で「WHERE ordd.ProductID = kep.ProductID」と指定しましたが、SQL92仕様であるFROM句中でのINNER JOIN指定へ、自動的に変更されています。

Enterprise Managerでの新規ビューの作成

 では、ビューのデザイン画面を使用して、新規のビューを作成してみましょう。ここでは、「顧客及び製品ごとの1997年以前の製品オーダー数」を表示するビューを作成します。手順は、以下のとおりです。

Enterprise Managerで新規ビューを作成してみる

(1) 左端に表示される「ツリー」で、「ビュー」を右クリックし、「新規ビュー」を選択する

画面9 Enterprise Managerでビューを作成するには、左ペインに表示される一覧で「ビュー」を選択、右クリックメニューから「新規ビュー」を実行する(画面をクリックすると全体を表示します) 画面9 Enterprise Managerでビューを作成するには、左ペインに表示される一覧で「ビュー」を選択、右クリックメニューから「新規ビュー」を実行する(画面をクリックすると全体を表示します)

(2) 何も定義されていないビューのデザイン画面が表示されるので、まず、アイコンバーから「テーブルの追加」をクリックする

画面10 ビューのデザイン画面が表示されたら、アイコンバーから「テーブルの追加」を選択する(画面をクリックすると全体を表示します) 画面10 ビューのデザイン画面が表示されたら、アイコンバーから「テーブルの追加」を選択する(画面をクリックすると全体を表示します)

(3) 表示された「テーブルの追加」画面で、以下4つのテーブルを順にダブルクリックし追加する。終わったら「閉じる」ボタンをクリックし、テーブルの追加画面を閉じる

1.Customers
2. Orders
3. Order Details
4. Products

画面11 画面10で「テーブルの追加」ボタンを押すと表示されるダイアログボックス。ここで必要なテーブルを順番に選択する(画面をクリックすると拡大表示します) 画面11 画面10で「テーブルの追加」ボタンを押すと表示されるダイアログボックス。ここで必要なテーブルを順番に選択する(画面をクリックすると拡大表示します)

(4) ダイアグラムペインに、追加したテーブルが表示され、結合線が自動的に表示されているのが確認できる

(5) ダイアグラムペインに表示されたテーブルのリストにおいて、表示するカラムを順に選択する

1.CustomersテーブルのCustomerIDカラム
2. CustomersテーブルのCompanyNameカラム
3. ProductsテーブルのProductIDカラム
4. ProductsテーブルのProductNameカラム
5. Order DetailsテーブルのQuantityカラム
6. OrdersテーブルのRequiredDateカラム

(6) グリッドペインに(5)で選択したカラムが表示されるのが確認できる

(7) RequiredDateの「出力」チェックマークをクリックし出力対象から外し、抽出条件に「< '1997/1/1'」と指定する

画面12 出力カラムの選択画面では、「RequiredDate」から出力チェックを外し、抽出条件を指定しておく(画面をクリックすると拡大表示します) 画面12 出力カラムの選択画面では、「RequiredDate」から出力チェックを外し、抽出条件を指定しておく(画面をクリックすると拡大表示します)

(8) ダイアグラムペインで右クリックして、表示されたメニューから「グループ化」を選択する

画面13 ダイアグラムペインで右クリックメニューから「グループ化」を実行する(画面をクリックすると全体を表示します) 画面13 ダイアグラムペインで右クリックメニューから「グループ化」を実行する(画面をクリックすると全体を表示します)

(9) グリッドペインに「グループ化」カラムが追加され、すべてのカラムに「グループ化」が指定されることが確認できる

(10) グリッドペインで「Quantity」列の「グループ化」指定を「合計」に変更し、別名を「QtyTotal」と指定する

画面14 グリッドペインで「Quantity」列の「グループ化」指定を「合計」に変更、別名を「QtyTotal」とする(画面をクリックすると全体を表示します) 画面14 グリッドペインで「Quantity」列の「グループ化」指定を「合計」に変更、別名を「QtyTotal」とする(画面をクリックすると全体を表示します)

(11) アイコンバーから「実行」を選択し、結果ペインで実行結果を確認する

(12) アイコンバーから「保存」を選択し、ビューに「ProductQtyByCustomer」と名前を付けて保存する

画面15 作成したビューに名前を付けて保存する 画面15 作成したビューに名前を付けて保存する

(13) ビューのデザイン画面を閉じる

(14) 作成したProductQtyByCustomerビューを右クリックし、表示されたメニューから「ビューを開く」→「全行を返す」を選択する

画面16 作成したビューの内容を確認する(画面をクリックすると全体を表示します) 画面16 作成したビューの内容を確認する(画面をクリックすると全体を表示します)

(15) 実行結果は、以下のとおり

画面17 ビューの実行結果(画面をクリックすると拡大表示します) 画面17 ビューの実行結果(画面をクリックすると拡大表示します)

 ビジュアル環境でのビューの作成は、CREATE文を作成してのビュー作成よりも手順が多くなりますが、テーブル名やカラム名を覚えておく必要がないため、非常に便利な機能といえます。実際に作成する場合は、CREATE文とビジュアル環境をうまく使い分けて利用すると、さらに効率が上がると思います。例えば、ある程度の“ひな型”をビジュアル環境で作成した後、細かい指定はSQL文を直接編集するなどの方法です。

今回のまとめ

今回は、Enterprise Managerを使用したビューの作成について解説しました。次回は権限の設定について紹介する予定です



「SQL実践講座」バックナンバー

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。