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

Mais conteúdo relacionado

Mais procurados

Tokyo r25 hiro_macchan
Tokyo r25 hiro_macchanTokyo r25 hiro_macchan
Tokyo r25 hiro_macchanHiroki Matsui
 
データベースシステム論05 - PostgreSQLのインストール
データベースシステム論05 - PostgreSQLのインストールデータベースシステム論05 - PostgreSQLのインストール
データベースシステム論05 - PostgreSQLのインストールShohei Yokoyama
 
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)NTT DATA Technology & Innovation
 
[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方Kosuke Kida
 
データベースシステム論01 - ガイダンス
データベースシステム論01 - ガイダンスデータベースシステム論01 - ガイダンス
データベースシステム論01 - ガイダンスShohei Yokoyama
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京tuchimur
 
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッションApache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッションMapR Technologies Japan
 
Chugokudb study-20150131
Chugokudb study-20150131Chugokudb study-20150131
Chugokudb study-20150131Toshi Harada
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回yamahige
 
OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門Shinichi YAMASHITA
 
Apache Drill で日本語を扱ってみよう + オープンデータ解析
Apache Drill で日本語を扱ってみよう + オープンデータ解析Apache Drill で日本語を扱ってみよう + オープンデータ解析
Apache Drill で日本語を扱ってみよう + オープンデータ解析MapR Technologies Japan
 
2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画keki3
 

Mais procurados (15)

Tokyo r25 hiro_macchan
Tokyo r25 hiro_macchanTokyo r25 hiro_macchan
Tokyo r25 hiro_macchan
 
Japan r.3
Japan r.3Japan r.3
Japan r.3
 
データベースシステム論05 - PostgreSQLのインストール
データベースシステム論05 - PostgreSQLのインストールデータベースシステム論05 - PostgreSQLのインストール
データベースシステム論05 - PostgreSQLのインストール
 
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
 
[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方
 
Drill超簡単チューニング
Drill超簡単チューニングDrill超簡単チューニング
Drill超簡単チューニング
 
データベースシステム論01 - ガイダンス
データベースシステム論01 - ガイダンスデータベースシステム論01 - ガイダンス
データベースシステム論01 - ガイダンス
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
 
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッションApache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
 
Chugokudb study-20150131
Chugokudb study-20150131Chugokudb study-20150131
Chugokudb study-20150131
 
VIOPS04: Skip Graphの基礎知識
VIOPS04: Skip Graphの基礎知識VIOPS04: Skip Graphの基礎知識
VIOPS04: Skip Graphの基礎知識
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
 
OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門
 
Apache Drill で日本語を扱ってみよう + オープンデータ解析
Apache Drill で日本語を扱ってみよう + オープンデータ解析Apache Drill で日本語を扱ってみよう + オープンデータ解析
Apache Drill で日本語を扱ってみよう + オープンデータ解析
 
2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画2019年度 若手技術者向け講座 実行計画
2019年度 若手技術者向け講座 実行計画
 

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

SQL勉強会 初級編
SQL勉強会 初級編SQL勉強会 初級編
SQL勉強会 初級編Kazuma Hidaka
 
iptables BPF module 効果測定
iptables BPF module 効果測定iptables BPF module 効果測定
iptables BPF module 効果測定@ otsuka752
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5Koichiro Sasaki
 
Japan.r 2データベース
Japan.r 2データベースJapan.r 2データベース
Japan.r 2データベースsleipnir002
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jpyoyamasaki
 
2019年度若手技術者向け講座 実践SQL
2019年度若手技術者向け講座 実践SQL2019年度若手技術者向け講座 実践SQL
2019年度若手技術者向け講座 実践SQLkeki3
 
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価Dell TechCenter Japan
 
Snowflake on AWSのターゲットエンドポイントとしての利用
Snowflake on AWSのターゲットエンドポイントとしての利用Snowflake on AWSのターゲットエンドポイントとしての利用
Snowflake on AWSのターゲットエンドポイントとしての利用QlikPresalesJapan
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.pptNaoya Ito
 
AWS Black Belt Techシリーズ Amazon Redshift
AWS Black Belt Techシリーズ  Amazon RedshiftAWS Black Belt Techシリーズ  Amazon Redshift
AWS Black Belt Techシリーズ Amazon RedshiftAmazon Web Services Japan
 
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜griddb
 
はじめてのAmazon Redshift
はじめてのAmazon RedshiftはじめてのAmazon Redshift
はじめてのAmazon RedshiftJun Okubo
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報Kazuki Takai
 
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Toshi Harada
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京Koichiro Sasaki
 
Intoroduction of Pandas with Python
Intoroduction of Pandas with PythonIntoroduction of Pandas with Python
Intoroduction of Pandas with PythonAtsushi Hayakawa
 
EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門Kiyoshi Sawada
 
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016Kohei Hoshi
 
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)nabe-abk
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪Yu Ito
 

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

SQL勉強会 初級編
SQL勉強会 初級編SQL勉強会 初級編
SQL勉強会 初級編
 
iptables BPF module 効果測定
iptables BPF module 効果測定iptables BPF module 効果測定
iptables BPF module 効果測定
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5
 
Japan.r 2データベース
Japan.r 2データベースJapan.r 2データベース
Japan.r 2データベース
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jp
 
2019年度若手技術者向け講座 実践SQL
2019年度若手技術者向け講座 実践SQL2019年度若手技術者向け講座 実践SQL
2019年度若手技術者向け講座 実践SQL
 
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価SAS Visual Analytics 6.3 を使った DELL VRTX の評価
SAS Visual Analytics 6.3 を使った DELL VRTX の評価
 
Snowflake on AWSのターゲットエンドポイントとしての利用
Snowflake on AWSのターゲットエンドポイントとしての利用Snowflake on AWSのターゲットエンドポイントとしての利用
Snowflake on AWSのターゲットエンドポイントとしての利用
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.ppt
 
AWS Black Belt Techシリーズ Amazon Redshift
AWS Black Belt Techシリーズ  Amazon RedshiftAWS Black Belt Techシリーズ  Amazon Redshift
AWS Black Belt Techシリーズ Amazon Redshift
 
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
 
はじめてのAmazon Redshift
はじめてのAmazon RedshiftはじめてのAmazon Redshift
はじめてのAmazon Redshift
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報
 
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
 
Intoroduction of Pandas with Python
Intoroduction of Pandas with PythonIntoroduction of Pandas with Python
Intoroduction of Pandas with Python
 
EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門EWD 3トレーニングコース#17 Globalストレジ・データベース入門
EWD 3トレーニングコース#17 Globalストレジ・データベース入門
 
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
 
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪
 

Último

TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfyukisuga3
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 

Último (6)

TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 

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

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