Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
データベースシステム論
2016年度 前期 水曜 1・2時限 情24教室
担当:横山昌平
データベースシステム論 第 回2016 [ 7 ] 1p.
講義計画
• 関係データベースの歴史と基本概念
• SQLの基礎と応用(演習を含めつつ)
• データベースの設計と構成
• SQL問い合わせ処理とそれを支える技術
• 関係データモデル以外のデータベース
データベースシステム論 第 回2016 ...
データベースシステム論
第7回 SQL基礎演習2 データの問い合わせ
データベースシステム論 第 回2016 [ 7 ] 3p.
前回の課題はOK?
• ワインのテーブルを作ってみよう!
• 提出方法
• 学情システムにて
データベースシステム論 第 回2016 [ 7 ] 4p.
wID name dID price
1 シャブリ A 2400
2 ジュヴレシャンベルタ...
全行全列を返す
• SELECT文
データベースシステム論 第 回2016 [ 7 ] 5p.
SELECT * FROM テーブル名 ;
全行全列を返す - 例1
• SELECT文
データベースシステム論 第 回2016 [ 7 ] 6p.
SELECT * FROM wine;
dbsys=# SELECT * FROM wine;
wid | name | did | pr...
全行全列を返す - 例2
• SELECT文 (テーブル名の一部を大文字に)
データベースシステム論 第 回2016 [ 7 ] 7p.
SELECT * FROM wiNe;
dbsys=# SELECT * FROM wiNe;
wid |...
射影演算
• 全列射影
• 特定のカラムのみ射影
データベースシステム論 第 回2016 [ 7 ] 8p.
SELECT * FROMテーブル名;
SELECT カラム名, … FROMテーブル名;
射影演算 - 例
• wIDとnameの列のみからなるテーブル
データベースシステム論 第 回2016 [ 7 ] 9p.
SELECT wid, name FROM wine;
dbsys=# SELECT wid, name FROM wi...
リネーム演算
• AS句
データベースシステム論 第 回2016 [ 7 ] 10p.
SELECT カラム名 AS 新しい名前
FROMテーブル名;
リネーム演算- 例
• 「name」という列を「名前」に変更
データベースシステム論 第 回2016 [ 7 ] 11p.
SELECT wid, name AS 名前 FROM wine;
dbsys=# SELECT wid, name A...
選択演算
• WHERE句
• 選択条件
• boolean型(true or false)を返す式
• 比較演算子・論理演算子の組み合わせ
• 文字列パターンマッチング
• IN句 / NOT IN句など
• boolean型を返す関数
デー...
選択演算 - 例
• 2200円以上3000円未満のワインリスト
データベースシステム論 第 回2016 [ 7 ] 13p.
SELECT * FROM wine
WHERE price < 3000 AND price >= 2200;
d...
整列演算
• ORDER BY句
• 並び方
• DESC 降順
• ASC 昇順 (省略時のデフォルト)
データベースシステム論 第 回2016 [ 7 ] 14p.
SELECT * FROMテーブル名
ORDER BYソートの基準列 [並...
整列演算- 例1
• 値段順に並べる
データベースシステム論 第 回2016 [ 7 ] 15p.
SELECT * FROM wine ORDER BY price ;
dbsys=# SELECT * FROM wine ORDER BY ...
整列演算- 例2
• dID(アルファベット)でソートは可能?
データベースシステム論 第 回2016 [ 7 ] 16p.
SELECT name,did FROM wine ORDER BY did;
dbsys=# SELECT name...
整列演算- 例3
• name(カタカナ文字列)でソートは可能?
データベースシステム論 第 回2016 [ 7 ] 17p.
SELECT wid,name FROM wine ORDER BY name;
dbsys=# SELECT wi...
整列演算- 試行課題1(提出無)
• 漢字交じり文字列のソートは?
• 講義ホームページの「試行課題1」
データベースシステム論 第 回2016 [ 7 ] 18p.
id | text
----+----------
1 | アメリカ
2 |...
dbsys=# SELECT * FROM wine
dbsys-# WHERE price < 3000 AND price >= 2200
dbsys-# ORDER BY price DESC;
wid | name | did | pr...
(全行)集約演算
• 集約関数
データベースシステム論 第 回2016 [ 7 ] 20p.
SELECT 集約関数(フィールド名)
FROMテーブル名;
(復習)集約関数
• 基本的な関数
• avg(属性) 平均値
• count(*) 行数
• max(属性) ,min(属性) 最大最小値
• sum(属性) 合計
• 統計処理用
• corr(属性1, 属性2) 相関係数
• stddev...
(全行)集約演算 - 例1
• 全ワインの平均価格
• 関数の結果を関数に入力する事も可能です
データベースシステム論 第 回2016 [ 7 ] 22p.
SELECT avg(price) FROM wine;
dbsys=# SELECT...
(全行)集約演算 - 例2
• 全ワイン名をカンマで繋いだ文字列を得る
データベースシステム論 第 回2016 [ 7 ] 23p.
SELECT string_agg(name , ’,’) FROM wine;
dbsys=# SELECT...
集約演算
• GROUP BY句
• ※1
• 射影可能なフィールドは次のいずれか
• GROUP BY句で指定したフィールド
• 上記以外のフィールドを集約関数の引数に指定したもの
• 定数や単体で結果を返す関数
データベースシステム論 第 ...
集約演算 - 例
• 産地別平均価格
データベースシステム論 第 回2016 [ 7 ] 25p.
SELECT did, round(avg(price)) FROM wine
GROUP BY did;
dbsys=# SELECT did...
集約&整列演算 - 例
• 産地別平均価格(降順)
データベースシステム論 第 回2016 [ 7 ] 26p.
SELECT did, round(avg(price)) FROM wine
GROUP BY did
ORDER BY pri...
集約&整列演算 - 例
• 産地別平均価格(降順)
• 整列基準に指定できるのは結果に表れる行のみ
• この例の場合はdidもしくは集約されたprice値
データベースシステム論 第 回2016 [ 7 ] 27p.
SELECT did, r...
集約&整列演算 - 例
• 産地別平均価格(降順)
データベースシステム論 第 回2016 [ 7 ] 28p.
SELECT did, round(avg(price)) FROM wine
GROUP BY did
ORDER BY rou...
集約&整列&リネーム演算 - 例
• 産地別平均価格(降順)※roundなんてカラム名は使わない版
データベースシステム論 第 回2016 [ 7 ] 29p.
SELECT did, round(avg(price)) AS price
FR...
集約&整列&リネーム演算 - 例
• 安価なワインの産地別平均価格(降順)
• 安価=ワインの価格が4000円未満=安価なワイン
• 安価=産地平均価格が4000円未満=安価な産地
データベースシステム論 第 回2016 [ 7 ] 30p.
...
集約&整列&リネーム演算 - 例
• 安価なワインの産地別平均価格(降順)
• 安価=ワインの価格が4000円未満=安価なワイン
• 安価=産地平均価格が4000円未満=安価な産地
データベースシステム論 第 回2016 [ 7 ] 31p.
...
データベースシステム論
演習2 WHERE句とHAVING句
データベースシステム論 第 回2016 [ 7 ] 32p.
提出課題2
• WHERE句とHAVIGN句の動作の違いを考察せよ
• 課題の具体的な内容はWebを参照のこと
• 提出方法
• 講義のホームページの「課題2」を参照
データベースシステム論 第 回2016 [ 7 ] 33p.
did | r...
次回予告
第7回 SQL応用演習 結合演算とその他
データベースシステム論 第 回2016 [ 7 ] 34p.
第7回 SQL応用演習 結合演算その他
• 来週は実際にRDBを利用する際に欠かす事ので
きない結合演算を中心に学びます。またビュー
やユーザの権限等の重要な機能にも触れます。
• 来週学ぶこと
• ビュー
• 結合演算
• 権限の付与・剥奪
...
Upcoming SlideShare
Loading in …5
×

データベースシステム論07 - SQL基礎演習2 データの問い合わせ

3,233 views

Published on

静岡大学情報学部「データベースシステム論」講義スライド
第7回:SQL基礎演習2 データの問い合わせ

Published in: Education
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

データベースシステム論07 - SQL基礎演習2 データの問い合わせ

  1. 1. データベースシステム論 2016年度 前期 水曜 1・2時限 情24教室 担当:横山昌平 データベースシステム論 第 回2016 [ 7 ] 1p.
  2. 2. 講義計画 • 関係データベースの歴史と基本概念 • SQLの基礎と応用(演習を含めつつ) • データベースの設計と構成 • SQL問い合わせ処理とそれを支える技術 • 関係データモデル以外のデータベース データベースシステム論 第 回2016 [ 6 ] 2p. ※現時点での予定です。進捗に応じて変更します。 27Apr. 20Apr. 13Apr. 25May 18May 11May 1June 8June 29June 22June 20July 13July 6July 27July
  3. 3. データベースシステム論 第7回 SQL基礎演習2 データの問い合わせ データベースシステム論 第 回2016 [ 7 ] 3p.
  4. 4. 前回の課題はOK? • ワインのテーブルを作ってみよう! • 提出方法 • 学情システムにて データベースシステム論 第 回2016 [ 7 ] 4p. wID name dID price 1 シャブリ A 2400 2 ジュヴレシャンベルタン A 3000 3 サンテミリオン B 5800 4 オーメドック B 2200 5 サンセール C 2800 6 シャンパン D 4000 dID district A ブルゴーニュ B ボルドー C ロワール D シャンパーニュ E チリ wine vineyard 主キー 外部キー 主キー
  5. 5. 全行全列を返す • SELECT文 データベースシステム論 第 回2016 [ 7 ] 5p. SELECT * FROM テーブル名 ;
  6. 6. 全行全列を返す - 例1 • SELECT文 データベースシステム論 第 回2016 [ 7 ] 6p. SELECT * FROM wine; dbsys=# SELECT * FROM wine; wid | name | did | price -----+------------------------+-----+------- 1 | シャブリ | A | 2400 2 | ジュヴレシャンベルタン | A | 3000 3 | サンテミリオン | B | 5800 4 | オーメドック | B | 2200 5 | サンセール | C | 2800 6 | シャンパン | D | 4000 (6 行)
  7. 7. 全行全列を返す - 例2 • SELECT文 (テーブル名の一部を大文字に) データベースシステム論 第 回2016 [ 7 ] 7p. SELECT * FROM wiNe; dbsys=# SELECT * FROM wiNe; wid | name | did | price -----+------------------------+-----+------- 1 | シャブリ | A | 2400 2 | ジュヴレシャンベルタン | A | 3000 3 | サンテミリオン | B | 5800 4 | オーメドック | B | 2200 5 | サンセール | C | 2800 6 | シャンパン | D | 4000 (6 行) 実はSQLのオブジェク ト名(テーブル名・列 名など)は大文字・小 文字を区別しません。
  8. 8. 射影演算 • 全列射影 • 特定のカラムのみ射影 データベースシステム論 第 回2016 [ 7 ] 8p. SELECT * FROMテーブル名; SELECT カラム名, … FROMテーブル名;
  9. 9. 射影演算 - 例 • wIDとnameの列のみからなるテーブル データベースシステム論 第 回2016 [ 7 ] 9p. SELECT wid, name FROM wine; dbsys=# SELECT wid, name FROM wine; wid | name -----+------------------------ 1 | シャブリ 2 | ジュヴレシャンベルタン 3 | サンテミリオン 4 | オーメドック 5 | サンセール 6 | シャンパン (6 行)
  10. 10. リネーム演算 • AS句 データベースシステム論 第 回2016 [ 7 ] 10p. SELECT カラム名 AS 新しい名前 FROMテーブル名;
  11. 11. リネーム演算- 例 • 「name」という列を「名前」に変更 データベースシステム論 第 回2016 [ 7 ] 11p. SELECT wid, name AS 名前 FROM wine; dbsys=# SELECT wid, name AS 名前 FROM wine; wid | 名前 -----+------------------------ 1 | シャブリ 2 | ジュヴレシャンベルタン 3 | サンテミリオン 4 | オーメドック 5 | サンセール 6 | シャンパン (6 行)
  12. 12. 選択演算 • WHERE句 • 選択条件 • boolean型(true or false)を返す式 • 比較演算子・論理演算子の組み合わせ • 文字列パターンマッチング • IN句 / NOT IN句など • boolean型を返す関数 データベースシステム論 第 回2016 [ 7 ] 12p. SELECT * FROMテーブル名 WHERE 選択条件;
  13. 13. 選択演算 - 例 • 2200円以上3000円未満のワインリスト データベースシステム論 第 回2016 [ 7 ] 13p. SELECT * FROM wine WHERE price < 3000 AND price >= 2200; dbsys=# SELECT * FROM wine dbsys-# WHERE price < 3000 AND price >= 2200; wid | name | did | price -----+--------------+-----+------- 1 | シャブリ | A | 2400 4 | オーメドック | B | 2200 5 | サンセール | C | 2800 (3 行)
  14. 14. 整列演算 • ORDER BY句 • 並び方 • DESC 降順 • ASC 昇順 (省略時のデフォルト) データベースシステム論 第 回2016 [ 7 ] 14p. SELECT * FROMテーブル名 ORDER BYソートの基準列 [並び方],… ;
  15. 15. 整列演算- 例1 • 値段順に並べる データベースシステム論 第 回2016 [ 7 ] 15p. SELECT * FROM wine ORDER BY price ; dbsys=# SELECT * FROM wine ORDER BY price ; wid | name | did | price -----+------------------------+-----+------- 4 | オーメドック | B | 2200 1 | シャブリ | A | 2400 5 | サンセール | C | 2800 2 | ジュヴレシャンベルタン | A | 3000 6 | シャンパン | D | 4000 3 | サンテミリオン | B | 5800 (6 行) 昇順
  16. 16. 整列演算- 例2 • dID(アルファベット)でソートは可能? データベースシステム論 第 回2016 [ 7 ] 16p. SELECT name,did FROM wine ORDER BY did; dbsys=# SELECT name,did FROM wine ORDER BY did; name | did ------------------------+----- シャブリ | A ジュヴレシャンベルタン | A サンテミリオン | B オーメドック | B サンセール | C シャンパン | D (6 行) 辞書順順
  17. 17. 整列演算- 例3 • name(カタカナ文字列)でソートは可能? データベースシステム論 第 回2016 [ 7 ] 17p. SELECT wid,name FROM wine ORDER BY name; dbsys=# SELECT wid,name FROM wine ORDER BY name; wid | name -----+------------------------ 4 | オーメドック 5 | サンセール 3 | サンテミリオン 1 | シャブリ 6 | シャンパン 2 | ジュヴレシャンベルタン (6 行) 辞書順順
  18. 18. 整列演算- 試行課題1(提出無) • 漢字交じり文字列のソートは? • 講義ホームページの「試行課題1」 データベースシステム論 第 回2016 [ 7 ] 18p. id | text ----+---------- 1 | アメリカ 2 | あめりか 8 | イタリア 9 | いたりあ 11 | ドイツ 12 | どいつ 5 | フランス 4 | ふらんす 3 | 亜米利加 7 | 伊太利 10 | 独逸 6 | 仏蘭西 • 単純な文字コード順ではなさそうだ • 文字コード表では全ひらがなの後で全カタカナ • ひらがな・カタカナ交じりは上手く処理されている • 漢字だけみると一見うまく処理されている • 文字コード順が音読みになっているたので「たまたま」 [注意]詳しくは説明しませんが・・・ • DBMSによっては違う結果になる可能性あり • 「ロケール」の設定により違う結果になる可能性あり • もしカナをvarcharに格納する場合、カタカナ型等は無 いので、プログラム側で整合性をチェックする
  19. 19. dbsys=# SELECT * FROM wine dbsys-# WHERE price < 3000 AND price >= 2200 dbsys-# ORDER BY price DESC; wid | name | did | price -----+--------------+-----+------- 5 | サンセール | C | 2800 1 | シャブリ | A | 2400 4 | オーメドック | B | 2200 (3 行) 整列演算- 例4 • 2200円以上3000円未満のワインの値段降順 データベースシステム論 第 回2016 [ 7 ] 19p. 降順 SELECT * FROM wine WHERE price < 3000 AND price >= 2200 ORDER BY price DESC;
  20. 20. (全行)集約演算 • 集約関数 データベースシステム論 第 回2016 [ 7 ] 20p. SELECT 集約関数(フィールド名) FROMテーブル名;
  21. 21. (復習)集約関数 • 基本的な関数 • avg(属性) 平均値 • count(*) 行数 • max(属性) ,min(属性) 最大最小値 • sum(属性) 合計 • 統計処理用 • corr(属性1, 属性2) 相関係数 • stddev_samp(属性) 標本標準偏差 etc… • 文字列用 • string_agg(属性) 文字列連結 etc… データベースシステム論 第 回2016 [ 7 ] 21p.
  22. 22. (全行)集約演算 - 例1 • 全ワインの平均価格 • 関数の結果を関数に入力する事も可能です データベースシステム論 第 回2016 [ 7 ] 22p. SELECT avg(price) FROM wine; dbsys=# SELECT avg(price) FROM wine; avg ----------------------- 3366.6666666666666667 (1 行) SELECT round(avg(price)) FROM wine;
  23. 23. (全行)集約演算 - 例2 • 全ワイン名をカンマで繋いだ文字列を得る データベースシステム論 第 回2016 [ 7 ] 23p. SELECT string_agg(name , ’,’) FROM wine; dbsys=# SELECT string_agg(name , ',') FROM wine; string_agg ----------------------------------------------------------------------------------- シャブリ,ジュヴレシャンベルタン,サンテミリオン,オーメドック,サンセール,シャンパン (1 行)
  24. 24. 集約演算 • GROUP BY句 • ※1 • 射影可能なフィールドは次のいずれか • GROUP BY句で指定したフィールド • 上記以外のフィールドを集約関数の引数に指定したもの • 定数や単体で結果を返す関数 データベースシステム論 第 回2016 [ 7 ] 24p. SELECTフィールド名※1 FROMテーブル名 GROUP BYグループ化するフィールド名,…;
  25. 25. 集約演算 - 例 • 産地別平均価格 データベースシステム論 第 回2016 [ 7 ] 25p. SELECT did, round(avg(price)) FROM wine GROUP BY did; dbsys=# SELECT did, round(avg(price)) FROM wine GROUP BY did; did | round -----+------- D | 4000 B | 4000 C | 2800 A | 2700 (4 行) wID name dID price 1 シャブリ A 2400 2 ジュヴレシャンベルタン A 3000 3 サンテミリオン B 5800 4 オーメドック B 2200 5 サンセール C 2800 6 シャンパン D 4000 確認してみよう
  26. 26. 集約&整列演算 - 例 • 産地別平均価格(降順) データベースシステム論 第 回2016 [ 7 ] 26p. SELECT did, round(avg(price)) FROM wine GROUP BY did ORDER BY price DESC; dbsys=# SELECT did, round(avg(price)) FROM wine dbsys-# GROUP BY did dbsys-# ORDER BY price DESC; ERROR: 列"wine.price"はGROUP BY句で出現しなけ ればならないか、集約関数内で使用しなければなり ません 行 3: ORDER BY price DESC; ^
  27. 27. 集約&整列演算 - 例 • 産地別平均価格(降順) • 整列基準に指定できるのは結果に表れる行のみ • この例の場合はdidもしくは集約されたprice値 データベースシステム論 第 回2016 [ 7 ] 27p. SELECT did, round(avg(price)) FROM wine GROUP BY did ORDER BY price DESC; PostgreSQLの場合、そして大抵の DBSMの場合、あるカラムに関数を 適用した結果のカラム名は関数名が 付いている。(この例の場合round)
  28. 28. 集約&整列演算 - 例 • 産地別平均価格(降順) データベースシステム論 第 回2016 [ 7 ] 28p. SELECT did, round(avg(price)) FROM wine GROUP BY did ORDER BY round DESC; dbsys=# SELECT did, round(avg(price)) FROM wine dbsys-# GROUP BY did ORDER BY round DESC; did | round -----+------- D | 4000 B | 4000 C | 2800 A | 2700 (4 行) 降順
  29. 29. 集約&整列&リネーム演算 - 例 • 産地別平均価格(降順)※roundなんてカラム名は使わない版 データベースシステム論 第 回2016 [ 7 ] 29p. SELECT did, round(avg(price)) AS price FROM wine GROUP BY did ORDER BY price DESC; dbsys=# SELECT did, round(avg(price)) AS price dbsys-# FROM wine GROUP BY did ORDER BY price DESC; did | price -----+------- D | 4000 B | 4000 C | 2800 A | 2700 (4 行) 降順
  30. 30. 集約&整列&リネーム演算 - 例 • 安価なワインの産地別平均価格(降順) • 安価=ワインの価格が4000円未満=安価なワイン • 安価=産地平均価格が4000円未満=安価な産地 データベースシステム論 第 回2016 [ 7 ] 30p. SELECT did, round(avg(price)) FROM wine WHERE price < 4000 GROUP BY did ORDER BY round DESC; SELECT did, round(avg(price)) FROM wine GROUP BY did HAVING avg(price) < 4000 ORDER BY round DESC;
  31. 31. 集約&整列&リネーム演算 - 例 • 安価なワインの産地別平均価格(降順) • 安価=ワインの価格が4000円未満=安価なワイン • 安価=産地平均価格が4000円未満=安価な産地 データベースシステム論 第 回2016 [ 7 ] 31p. SELECT did, round(avg(price)) FROM wine WHERE price < 4000 GROUP BY did ORDER BY round DESC; SELECT did, round(avg(price)) FROM wine GROUP BY did HAVING avg(price) < 4000 ORDER BY round DESC; did | round -----+------- C | 2800 A | 2700 B | 2200 did | round -----+------- C | 2800 A | 2700
  32. 32. データベースシステム論 演習2 WHERE句とHAVING句 データベースシステム論 第 回2016 [ 7 ] 32p.
  33. 33. 提出課題2 • WHERE句とHAVIGN句の動作の違いを考察せよ • 課題の具体的な内容はWebを参照のこと • 提出方法 • 講義のホームページの「課題2」を参照 データベースシステム論 第 回2016 [ 7 ] 33p. did | round -----+------- C | 2800 A | 2700 B | 2200 did | round -----+------- C | 2800 A | 2700 wID name dID price 1 シャブリ A 2400 2 ジュヴレシャンベルタン A 3000 3 サンテミリオン B 5800 4 オーメドック B 2200 5 サンセール C 2800 6 シャンパン D 4000 WHERE句 HAVING句
  34. 34. 次回予告 第7回 SQL応用演習 結合演算とその他 データベースシステム論 第 回2016 [ 7 ] 34p.
  35. 35. 第7回 SQL応用演習 結合演算その他 • 来週は実際にRDBを利用する際に欠かす事ので きない結合演算を中心に学びます。またビュー やユーザの権限等の重要な機能にも触れます。 • 来週学ぶこと • ビュー • 結合演算 • 権限の付与・剥奪 • 予習 • 対応箇所:教科書SQLの章・関係代数の章全般 • 関連個所:Postgresのリファレンス • http://www.postgresql.jp/document/9.3/html/queries.html データベースシステム論 第 回2016 [ 7 ] 35p.

×