このページの本文へ

前へ 1 2 3 4 次へ

女子大生とゼロから学ぶ データベースの基礎 最終回

基本的なコマンドは押さえておきたい

「せんせい!SQLってRDBを操作する言語よね?」(由美)

2010年02月04日 09時00分更新

文● 樋口千洋

  • この記事をはてなブックマークに追加
  • 本文印刷

データ操作言語は結果に対してさらにグループ化やソートができる

先生:結果をさらにグループ化したりソートすることができます。先ほどの結合データを見てください。販売日ごとに表示しているので、鉛筆が重複していますが、商品名だけでグループ化するには以下のようにします。この結果は表4のようになります。




SELECT 商品名, count(販売数) 
AS 販売合計
FROM 結合データ
GROUP BY 商品名;




表4●結合データを商品名でグループ化

由美:countというのは何ですか?

先生:countは集計を意味し、その商品の販売数の合計を表示します。これを集約関数と呼んでいて、他にmaxやminがあります。またASの次には新しい列名が指定されています。さらに、ORDER BYを組み合わせることによって、表示順序をソートすることができます。たとえばこんな感じですね(図5、表5)。




SELECT 商品名, count(販売数) 
AS 販売合計
FROM 結合データ
GROUP BY 商品名
ORDER BY 販売合計, 商品名;




図5●ORDER BYを使ったSELECT文の操作手順

表5●データを集計してソートを行なった

仮想テーブルを作る「ビュー」

お父さん:SQLをうまく組み合わせることで、いろいろな操作ができることは実感できたのですが、なんというかすごくややこしい気がします。

由美:結果をその都度新しいテーブルとして定義すればよいと思うのだけど、元のテーブルが変わってしまっては駄目よね。

先生:そういうときには「ビュー」を使えばよいでしょう。ビューは仮のテーブルを作るものです。先程結合データというテーブルを作成しましたが、それと同様にして以下のように書くことで、「結合ビュー」という仮想テーブルを作成します。生成したビューはテーブルと同じようにして、SELECT文で扱うことができます。




CREATE VIEW 結合ビュー 
AS SELECT 商品名,販売数,販売日
FROM 商品データ, 販売データ
WHERE 商品データ.商品番号 =
販売データ.商品番号;




お父さん:いつのまにかいい時間になってしまいましたね。次は何についての勉強ですか?

先生:あ、急なんですが、今度転任することになってしまいました。そのため今回を持って最後としたいと思います。でも今回まででリレーショナルデータベースの基本のところは終わりました。いまの中村さんや由美ちゃんなら、本でどんどん勉強できるでしょう。

お父さん・由美:それは残念ですね。いままでありがとうございました。

先生:これからも頑張ってください。またいつの日かお会いしましょう。

前へ 1 2 3 4 次へ

カテゴリートップへ

この連載の記事