601 Views
January 12, 22
スライド概要
リレーショナルデータベースの基本(スライド資料とプログラム例)
https://www.kkaneko.jp/de/ds/index.html
ds-1. データベースとは,データベースシステムとは,情報とデータ
ds-2. SQL,SQL のデータ型,テーブル定義,問い合わせ(クエリ)
ds-3. ER 図,関連,異状, テーブル分解
ds-4. 問い合わせ(クエリ)
ds-5. 集計・集約
ds-6. 並べ替え(ソート)
ds-7. 結合
ds-8. データベースの異状,分解と結合
ds-9. 主キー,参照整合性制約,従属
ds-10. 中間まとめ,データベースの応用,データベースの種類
ds-11. SQL のIN,副問い合わせ
ds-12. データベースの AND,OR,NOT
ds-13. データベース操作,トランザクション,リカバリ,ロック,同時実行制御
ds-14. 従属,正規形,正規化
ds-15. さまざまなデータベース
YouTube 再生リスト「リレーショナルデータベースの基本」
https://youtube.com/playlist?list=PLwoDcGBEg9WGKPP6dExr8DcUf9nV2kYGD
金子邦彦研究室ホームページ:
https://www.kkaneko.jp/index.html
金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko
6. 並べ替え(ソート) URL: https://www.kkaneko.jp/de/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 1
リレーショナルデータベースシステム データベースシステムの一種 コンピュータ 記憶 装置 リレーショナル リレーショナル データベース データベース 管理システム たくさんのテーブルが格納される あわせて リレーショナルデータベースシステム 2
問い合わせ(クエリ)の仕組み 問い合わせ(クエリ) の結果は,テーブル形式の データ 問い合わせ (クエリ) のコマンド リレーショナル データベースシステム データの種類ごとに分かれ た、たくさんのテーブル 3
SQL による問い合わせの例 ① SELECT * FROM 商品; ② SELECT 名前, 単価 FROM 商品; ③ SELECT 名前, 単価 FROM 商品 WHERE 単価 > 80; ④ SELECT 受講者, COUNT(*) FROM 成績 GROUP BY 受講者; 4
Access で SQLビューを開く. ①「作成」タブで、 「クエリデザイン」 をクリック このような 表示が出た ときは 「閉じる」を クリック ②「デザイン」タブで、 「表示」を展開し「SQL ビュー」を選ぶ 5
アウトライン 番号 項目 説明時間の 目安 6-1 昇順,降順 4分 6-2 SQL を用いた並べ替え(ソート) 5分 6-3 並べ替え(ソート)の演習 並べ替え(ソート)の演習(選択との 組み合わせ,集計集約との組み合わ せ) 17分 6-4 5分 各自、資料を読み返したり、課題に取り組んだりも行う 6
全体まとめ • 並べ替え(ソート)の種類:昇順、降順 • SQL を用いた並べ替え(ソート) group by ・・・ 集計・集約 order by ・・・ 並べ替え(ソート) SELECT * FROM 米国成人調査データ ORDER BY 年齢; ・・・ 並べ替え(ソート),昇順 SELECT 母国, COUNT(*) FROM 米国成人調査データ GROUP BY 母国 ORDER BY COUNT(*); ・・・ 母国で集計・集約, その行数で 並べ替え(ソート) 7
6-1. 昇順,降順 8
昇順と降順 得点の昇順で 並べ替え 元データ (小から大) 得点の降順で 並べ替え (大から小) 9
並べ替え(ソート)に用いる属性 氏名の昇順で 並べ替え (小から大) 氏名の降順で 並べ替え (小から大) 得点の昇順で 並べ替え (小から大) 得点の降順で 並べ替え (大から小) 10
6-2. SQL を用いた並べ替え (ソート) 11
SQL を用いた並べ替え(ソート)の書き方 SELECT ○, ○, ○ FROM <並べ替え(ソート)したいテーブル名> ORDER BY <並べ替え(ソート)の属性(複数可能)> 昇順: 降順: 何も付けない DESC を付ける where, group by などを付け加えることもある 12
並べ替え(ソート)を行う問い合わせ(クエリ) の例 並べ替え(ソート)結果は 1つのテーブル SELECT * FROM 採点結果 ORDER BY 得点; 問い合わせ(クエリ) のコマンド 採点結果テーブル 13
昇順と降順の違い SELECT * FROM 採点結果 ORDER BY 得点; 昇順 SELECT * FROM 採点結果 ORDER BY 得点 desc; 降順 14
6-3. 並べ替え(ソート)の演習 15
並べ替え(ソート)のバリエーション • 昇順,降順 • 並べ替え(ソート)に使用する属性は複数可 • 選択との組み合わせ可 • 集計・集約との組み合わせ可 16
演習で使うデータベース 米国成人調査データ (1994年、米国における統計調査データのうち 32561 人分) ※ このデータを使います (演習では、特定の職業、学歴、性別、母国を差別的に見ないようにしてください) データの出典:Lichman, M. (2013). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science (米国) 17
演習用のデータベースファイル • 演習用の Access データベースファイル セレッソの利用者は,セレッソからもダウンロード可能 ファイル名: db4-4.accdb (第4回授業と同じファイル) • 「コンテンツの有効化」のメッセージが出たときは、確認 のうえ、次にすすむ • つぎのような表示が出たときは、確認のうえ、「はい」 18
米国成人調査データ 19
SELECT * FROM 米国成人調査データ ORDER BY 年齢; ・空白文字や *は半角 ・「;」は最後にだけ 年齢による並べ替え.昇順. 20
SELECT * FROM 米国成人調査データ ORDER BY 年齢 DESC; ・空白文字や *は半角 ・「;」は最後にだけ 年齢による並べ替え.降順. 21
• 今度は,教育年数での並べ替え(ソート)を考え る 22
SELECT * FROM 米国成人調査データ ORDER BY 教育年数; ・空白文字や *は半角 ・「;」は最後にだけ 教育年数による並べ替え.昇順. 23
SELECT * FROM 米国成人調査データ ORDER BY 教育年数 DESC; ・空白文字や *は半角 ・「;」は最後にだけ 教育年数による並べ替え.降順. 24
• 複数属性での並べ替え(ソート) • 年齢と教育年数 • 年齢を優先.同じ年齢の人は教育年数で並べ替 え(ソート) 25
SELECT * FROM 米国成人調査データ ORDER BY 年齢, 教育年数; ・空白文字や , や *は半角 ・「;」は最後にだけ 年齢,教育年数による並べ替え.昇順. 26
SELECT * FROM 米国成人調査データ ORDER BY 年齢 DESC, 教育年数 DESC; ・空白文字や , や *は半角 ・「;」は最後にだけ 年齢,教育年数による並べ替え.降順. 27
6-4. 並べ替え(ソート)の演習 (選択との組み合わせ,集計・ 集約との組み合わせ) 28
選択と並べ替えを1つのSQLで WHERE で選択 ORDER BY で並べ替え(ソート)を行う 元データ ある条件で選択 並べ替え (ソート) 結果 29
SELECT * FROM 米国成人調査データ WHERE 年齢 > 80 ORDER BY 年齢; ・空白文字や *は半角 ・「;」は最後にだけ 年齢で選択.年齢による並べ替え.昇順. 30
SELECT * FROM 米国成人調査データ WHERE 年齢 > 80 ORDER BY 年齢 DESC; ・空白文字や *は半角 ・「;」は最後にだけ 年齢で選択.年齢による並べ替え.降順. 31
SELECT * FROM 米国成人調査データ WHERE 年齢 BETWEEN 20 AND 30 ORDER BY 年齢; ・空白文字や *は半角 ・「;」は最後にだけ 年齢で選択.年齢による並べ替え.昇順. 32
集計・集約と並べ替えを1つのSQLで GROUP BY で集計・集約 ORDER BY で並べ替え(ソート)を行う 元データ 集計・集約 並べ替え (ソート) 結果 33
SELECT 母国, COUNT(*) FROM 米国成人調査データ GROUP BY 母国 ORDER BY COUNT(*); ・空白文字や *は半角 ・「;」は最後にだけ 母国で集計.行数による並べ替え.昇順. 34
全体まとめ • 昇順 SELECT * FROM 米国成人調査データ ORDER BY 年齢; • 降順 SELECT * FROM 米国成人調査データ ORDER BY 年齢 DESC; • 複数属性で並べ替え SELECT * FROM 米国成人調査データ ORDER BY 年齢, 教育 年数; • 選択との組み合わせ SELECT * FROM 米国成人調査データ WHERE 年齢 > 80 ORDER BY 年齢; • 集計・集約との組み合わせ SELECT 母国, COUNT(*) FROM 米国成人調査データ GROUP BY 母国 ORDER BY COUNT(*); 35