基本的なコマンドは押さえておきたい
「せんせい!SQLってRDBを操作する言語よね?」(由美)
2010年02月04日 09時00分更新
データ操作言語は結果に対してさらにグループ化やソートができる
先生:結果をさらにグループ化したりソートすることができます。先ほどの結合データを見てください。販売日ごとに表示しているので、鉛筆が重複していますが、商品名だけでグループ化するには以下のようにします。この結果は表4のようになります。
SELECT 商品名, count(販売数) AS 販売合計 FROM 結合データ GROUP BY 商品名;
由美:countというのは何ですか?
先生:countは集計を意味し、その商品の販売数の合計を表示します。これを集約関数と呼んでいて、他にmaxやminがあります。またASの次には新しい列名が指定されています。さらに、ORDER BYを組み合わせることによって、表示順序をソートすることができます。たとえばこんな感じですね(図5、表5)。
SELECT 商品名, count(販売数) AS 販売合計 FROM 結合データ GROUP BY 商品名 ORDER BY 販売合計, 商品名;
仮想テーブルを作る「ビュー」
お父さん:SQLをうまく組み合わせることで、いろいろな操作ができることは実感できたのですが、なんというかすごくややこしい気がします。
由美:結果をその都度新しいテーブルとして定義すればよいと思うのだけど、元のテーブルが変わってしまっては駄目よね。
先生:そういうときには「ビュー」を使えばよいでしょう。ビューは仮のテーブルを作るものです。先程結合データというテーブルを作成しましたが、それと同様にして以下のように書くことで、「結合ビュー」という仮想テーブルを作成します。生成したビューはテーブルと同じようにして、SELECT文で扱うことができます。
CREATE VIEW 結合ビュー AS SELECT 商品名,販売数,販売日 FROM 商品データ, 販売データ WHERE 商品データ.商品番号 = 販売データ.商品番号;
お父さん:いつのまにかいい時間になってしまいましたね。次は何についての勉強ですか?
先生:あ、急なんですが、今度転任することになってしまいました。そのため今回を持って最後としたいと思います。でも今回まででリレーショナルデータベースの基本のところは終わりました。いまの中村さんや由美ちゃんなら、本でどんどん勉強できるでしょう。
お父さん・由美:それは残念ですね。いままでありがとうございました。
先生:これからも頑張ってください。またいつの日かお会いしましょう。
この連載の記事
-
第3回
ソフトウェア・仮想化
「インデックスとトランザクションって」(由美) -
第2回
ソフトウェア・仮想化
「由美ちゃん、これがRDBの要素だよ」(先生) -
第1回
ソフトウェア・仮想化
「データベースってなんですか?」(由美) - この連載の一覧へ