13. 並べ替え(ソート)
1
URL: https://www.kkaneko.jp/de/ds/index.html
金子邦彦
謝辞:この資料では「いらすとや」のイラストを使用しています
リレーショナルデータベースシステム
2
リレーショナル
データベース
管理システム
リレーショナル
データベース
コンピュータ
記憶
装置
あわせて
リレーショナルデータベースシステム
たくさんのテーブルが格納される
データベースシステムの一種
データの形はテーブルリレーションともいう)
属性 id,
name, price
属性 book, who,
what, at
問い合わせ(クエリ)の仕組み
3
データの種類ごとに分かれ
た,たくさんのテーブル
問い合わせ
(クエリ)
コマンド
問い合わせ(クエリ)
結果は,テーブル形式の
データ
リレーショナル
データベースシステム
4
SQL による問い合わせの例
SELECT * FROM 商品;
SELECT 名前, 単価 FROM 商品;
SELECT 名前, 単価 FROM 商品 WHERE 単価 > 80;
SELECT 受講者, COUNT(*) FROM 成績 GROUP BY 受講者;
Access SQLビューを開く.
5
②「デザイン」タブで、
表示」を展開し「SQL
ビュー」を選ぶ
①「作成」タブで、
クエリデザイン
をクリック
このような
表示が出た
ときは
閉じる」を
クリック
アウトライン
6
番号
項目
説明時間の
目安
13
-1
昇順,降順
4
13
-2
SQL
を用いた並べ替え(ソート)
5
13
-3
並べ替え(ソート)の演習
17
13
-4
並べ替え(ソート)の演習(選択との
組み合わせ,集計集約との組み合わ
せ)
5
各自、資料を読み返したり、課題に取り組んだりも行う
全体まとめ
並べ替え(ソート)種類:昇順降順
SQL を用いた並べ替え(ソート)
group by ・・・ 集計・集約
order by ・・・ 並べ替え(ソート)
SELECT * FROM 米国成人調査データ ORDER BY 年齢;
・・・ 並べ替え(ソート),昇順
SELECT 母国,COUNT(*) FROM 米国成人調査データ
GROUP BY 母国 ORDER BY COUNT(*);
・・・
7
母国で集計・集約,
その行数で
並べ替え(ソート)
13-1. 昇順,降順
8
昇順と降順
9
元データ
得点昇順
並べ替え
得点降順
並べ替え
(大から小)
(小から大)
並べ替え(ソート)に用いる属性
10
得点昇順
並べ替え
得点降順
並べ替え
(大から小)
(小から大)
氏名昇順
並べ替え
(小から大)
(小から大)
氏名降順
並べ替え
13-2. SQL を用いた並べ替え
(ソート)
11
SQL を用いた並べ替え(ソート)の書き方
12
SELECT , ,
FROM 並べ替え(ソート)したいテーブル名
ORDER BY 並べ替え(ソート)の属性(複数可能)
昇順 何も付けない
降順DESC を付ける
where, group by などを付け加えることもある
並べ替え(ソート)を行う問い合わせ(クエリ)
の例
13
採点結果テーブル
問い合わせ(クエリ)
コマンド
SELECT *
FROM 採点結果
ORDER BY 得点;
並べ替え(ソート)結果は
1つのテーブル
昇順と降順の違い
14
SELECT * FROM 採点結果 ORDER BY 得点;
SELECT * FROM 採点結果 ORDER BY 得点 desc;
昇順
降順
13-3. 並べ替え(ソート)の演
15
並べ替え(ソート)のバリエーション
昇順降順
並べ替え(ソート)に使用する属性複数
選択との組み合わせ
集計・集約との組み合わせ
16
演習で使うデータベース
データの出典: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
このデータを使います
(演習では、特定の職業、学歴、性別、母国を差別的に見ないようにしてください)
米国成人調査データ
(1994年、米国における統計調査データのうち 32561 人分)
演習用のデータベースファイル
演習用の Access データベースファイル
セレッソの利用者は,セレッソからもダウンロード可能
ファイル名: db4-4.accdb
(第4回授業と同じファイル)
コンテンツの有効化」のメッセージが出たときは、確認
のうえ、次にすすむ
つぎのような表示が出たときは、確認のうえ、「はい
18
米国成人調査データ
19
年齢による並べ替え.昇順.
20
・空白文字や *半角
・「;」は最後にだけ
SELECT *
FROM 米国成人調査データ
ORDER BY 年齢;
年齢による並べ替え.降順.
21
・空白文字や *半角
・「;」は最後にだけ
SELECT *
FROM 米国成人調査データ
ORDER BY 年齢 DESC;
今度は,教育年数での並べ替え(ソート)を考え
22
教育年数による並べ替え.昇順.
23
・空白文字や *半角
・「;」は最後にだけ
SELECT *
FROM 米国成人調査データ
ORDER BY 教育年数;
教育年数による並べ替え.降順.
24
・空白文字や *半角
・「;」は最後にだけ
SELECT *
FROM 米国成人調査データ
ORDER BY 教育年数 DESC;
複数属性での並べ替え(ソート)
年齢教育年数
年齢を優先.同じ年齢の人は教育年数で並べ替
え(ソート)
25
年齢,教育年数による並べ替え.昇順.
26
・空白文字や , *半角
・「;」は最後にだけ
SELECT *
FROM 米国成人調査データ
ORDER BY 年齢, 教育年数;
年齢,教育年数による並べ替え.降順.
27
・空白文字や , *半角
・「;」は最後にだけ
SELECT *
FROM 米国成人調査データ
ORDER BY 年齢 DESC, 教育年数 DESC;
13-4. 並べ替え(ソート)の演
(選択との組み合わせ,集計・
集約との組み合わせ)
28
29
元データ
選択と並べ替えを1つのSQL
ある条件で選択
並べ替え
(ソート)
WHERE 選択
ORDER BY 並べ替え(ソート)を行う
結果
年齢で選択.年齢による並べ替え.昇順.
30
・空白文字や *半角
・「;」は最後にだけ
SELECT *
FROM 米国成人調査データ
WHERE 年齢 >80
ORDER BY 年齢;
年齢で選択.年齢による並べ替え.降順.
31
・空白文字や *半角
・「;」は最後にだけ
SELECT *
FROM 米国成人調査データ
WHERE 年齢 >80
ORDER BY 年齢 DESC;
年齢で選択.年齢による並べ替え.昇順.
32
・空白文字や *半角
・「;」は最後にだけ
SELECT *
FROM 米国成人調査データ
WHERE 年齢 BETWEEN 20 AND 30
ORDER BY 年齢;
33
元データ 集計・集約
並べ替え
(ソート)
結果
集計・集約と並べ替えを1つのSQL
GROUP BY 集計・集約
ORDER BY 並べ替え(ソート)を行う
母国で集計.行数による並べ替え.昇順.
34
・空白文字や *半角
・「;」は最後にだけ
SELECT 母国, COUNT(*)
FROM 米国成人調査データ
GROUP BY 母国
ORDER BY COUNT(*);
全体まとめ
昇順
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