4. Microsoft Access
データベース操作(3)
1
金子邦彦
(データベース演習)
URL: https://www.kkaneko.jp/de/de/index.html
謝辞:この資料では「いらすとや」のイラストを使用しています
1. データの効率的な探索と分
2. 基本スキルと多様な応用
3. 柔軟性と広範な適用性
2
アウトライン
1. イントロダクション
2. テーブル定義(Access SQL
ビューを使用)
3. データの追加(Access のデータ
シートビューを使用)
4. パターンマッチ
5. 実データを用いたデータ検索の
演習(Access SQL ビューを使
用)
3
4-1. イントロダクション
4
リレーショナルデータベースの仕組み
データをテーブルと呼ばれる表形式で保存
テーブル間関連で結ばれる。複雑な構造を持ったデータ
を効率的に管理することを可能に。
5
関連
リレーショナルデータベースの重要性
1. データの整合性: リレーショナルデータベースは、デー
タの整合性を保持するための機能を有する。これにより、
誤ったデータや矛盾したデータが保存されるのを防ぐこ
とができる。
2. 柔軟な問い合わせ(クエリ)能力: リレーショナルデー
タベースのSQLStructured Query Language)の使用に
より、複雑な検索やデータの抽出が可能になる。
3. トランザクションの機能: 一連の操作全体を一つの単位
として取り扱うことができる機能。これにより、データ
の一貫性と信頼性が向上する。
4. セキュリティ: アクセス権限の設定などにより、セキュ
リティを確保。
データの安全な保管、効率的なデータ検索・操作、ビジネス
や研究の意思決定をサポート。 6
SQL のキーワード select, from, where
select
問い合わせ(クエリ)のための基本的な命令。
取得したいデータの指定
from
データ取得の対象となるテーブルを指定
例:select * from テーブル名;
where
特定の条件を満たす行の選択
例:select * from テーブル名 where 1 = 1;
7
8
SQL による問い合わせの例
SQLは簡潔で単純
SELECT * FROM 商品;
SELECT 商品名, 単価 FROM 商品;
SELECT 商品名, 単価 FROM 商品 WHERE 単価 > 80;
4-2. テーブル定義(Access
SQL ビューを使用)
9
Access SQL ビューを用いたテーブル定
のプロセス
Access SQL ビューを開く
SQL の編集。create table を使用
: create table T (id integer, name text, age integer);
SQL の実行
実行の結果、空のテーブルが作成されるので確認
10
SQL によるテーブル定義
テーブル名メニュー
属性名名前、値段
属性のデータ型テキスト、数値
データの整合性を保つための制約なし
11
テキスト 半角数値
名前
値段
create table メニュー (
名前 text,
値段 integer
);
SQL
演習1.Access SQL
ビューを用いたテーブル定義
ページ13~18
【トピックス】
SQLビューを開く
SQL文の編集
create table
SQL文の実行
12
演習
1. パソコンを使用する
前もって Access をインストールしておくこと
2. Access 起動する
3. Access で、「空のデータベース」を選び、「作成」を
クリック.
13
4. テーブルツール画面が表示されることを確認
14
5. 次の手順で、SQLビューを開く.
15
②「デザイン」タブで、
表示」を展開し「SQL
ビュー」を選ぶ
①「作成」タブで、
クエリデザイン
をクリック
このような
表示が出た
ときは
閉じる」を
クリック
6. SQL ビューに、次の SQL を入れる
16
( ) , ;
は半角
create table メニュー (
名前 text,
値段 integer
);
7.実行」ボタンで、SQLを実行する.
17
テーブル「メニュー」が増える
あとで使用するので Access を終了しないこと
間違ってしまったときは、テーブルの削除
を行ってからやり直した方が早い場合がある
18
テーブルビューで、削除した
いテーブルを右クリックして、
削除
テーブルを削除するときは、
間違って必要なテーブルを削除しない
ように、十分に注意する!
(元に戻せない)
4-3. データの追加(Access
データシートビューを使用)
19
Access のデータシートビューを用いたデー
タの追加
Access テーブルビューで、使用したいテーブルを選ぶ
データシートビューが開くので確認
データシートビューで、データの追加
保存の操作(自動保存されないため)
20
テーブル名:メニュー
名前 値段
うどん
250
カレーライス
400
カレーうどん
450
昼定食
400
ラーメン定食
500
21
データシートビュー
データシートビューは,テーブルの中のデータを表示。
データの確認、編集、新しいデータの追加、検索、コ
ピー&貼り付けができる。
並べ替えや検索のための
補助画面
データシートビュー
演習2.Access のデータシー
トビューを用いたデータの追
ページ23~26
【トピックス】
テーブルビューで、使用したい
テーブルを選ぶ
データシートビューで、データ
の追加
保存の操作
22
23
データシートビューを使って、テーブル「メニュー」に
5行分のデータを追加
名前 値段
うどん
250
カレーライス
400
カレーうどん
450
昼定食
400
ラーメン定食
500
1. テーブルビューで、
ニューをダブルクリック
2. データシートビューが開く
ので確認
24
3. データシートビューで,行を追加する
25
入れる
最後の 500 を入れたら、
500 のセルで Enter キー
名前 値段
うどん
250
カレーライス
400
カレーうどん
450
昼定食
400
ラーメン定食
500
4. テーブルを保存する
メニュー」を右クリックして、右クリックメニュー
上書き保存
26
あとで使用するので Access を終了しないこと
4-4. パターンマッチ
27
Access SQL LIKE を用いたパターンマッチ
28
SELECT *
FROM メニュー
WHERE 名前 LIKE '*うどん*';
「うどん」や
「●●うどん」や
「うどん●●」や
「●●うどん●●」
の検索
名前 値段
うどん
250
カレーライス
400
カレーうどん
450
昼定食
400
ラーメン定食
500
名前 値段
うどん
250
カレーうどん
450
Access とそれ以外のパターンマッチの違い
29
SQL 世界標準は: %
SELECT *
FROM メニュー
WHERE 名前 LIKE '%うどん%';
マイクロソフト Access だけは*
SELECT *
FROM メニュー
WHERE 名前 LIKE '*うどん*';
Access SQL ビューを用いた問い合わせ
Access SQLビュー開く
SQL 編集select, from, where を使用
: select * from テーブル名 where 1 = 1;
SQL 実行
実行の結果、データシートビューに画面が変わり、そこに
い合わせの結果が表示される
さらにSQL 文の編集、実行を続ける場合には、画面を SQL
ビューに切り替える
30
31
SQL 問い合わせ(クエリ)で使用する2つのビュ
SQL ビュー
SQL 文の作成編集 データシートビュー
問い合わせ(クエリ)
結果
実行
表示 + SQL ビュー
マウス操作でビューを切り替え
演習3.パターンマッチ
ページ33~37
【トピックス】
問い合わせ(クエリ)
SQL ビュー
データシートビュー
パターンマッチ
Access では * を使用
32
1. 次の手順で、SQLビューを開く.
33
②「デザイン」タブで、
表示」を展開し「SQL
ビュー」を選ぶ
①「作成」タブで、
クエリデザイン
をクリック
このような
表示が出た
ときは
閉じる」を
クリック
34
select *
from メニュー
where 名前 like '*うどん*';
2. SQL ビューに、次の SQL を入れる
‘ * は半角
実行」ボタンで、SQLを実行.結果を確認
名前に「うどん」を含むものを知りたい
3. 結果を確認したら、SQLビューに戻る
35
表示」を展開し「SQLビュー」を選ぶ
36
select *
from メニュー
where 名前 like '*カレー*';
4. SQL ビューに、次の SQL を入れる
‘ * は半角
名前に「カレー」を含むものを知りたい
実行」ボタンで、SQLを実行.結果を確認.
結果を確認したら SQL ビューに戻る.
37
select *
from メニュー
where 名前 like '*定食*';
5. SQL ビューに、次の SQL を入れる
‘ * は半角
名前に「定食」を含むものを知りたい
実行」ボタンで、SQLを実行.結果を確認
結果を確認したら SQL ビューに戻る.
4-5. 実データを用いたデータ
検索の演習
38
リレーショナルデータベースでのさまざまな
データ分析
39
年収5万ドル以上の人の職業
教育の列(属性)
にはどういう値があるか
演習で使うデータベース
データの出典:Lichman, M. (2013).
UCI Machine Learning Repository [http://archive.ics.uci.edu/ml].
Irvine, CA: University of California, School of Information and Computer Science (米国)
40
このデータを使います
(演習では、特定の職業、学歴、性別、母国を差別的に見ないようにしてください)
米国成人調査データ
(1994年、米国における統計調査データのうち 32561 人分)
米国成人調査データ
41
演習4.実データを用いた
データ検索の演習
ページ43~48
【トピックス】
米国成人調査データ
SQL ビュー
データシートビュー
パターンマッチ
Access では * を使用
42
演習用のデータベースファイル
演習用の Access データベースファイル
セレッソの利用者は,セレッソからもダウンロード可能
ファイル名: db4-4.accdb
②「コンテンツの有効化」や「セキュリティ リスク」の
メッセージが出たときは、確認のうえ、次に進む
次のような表示が出たときは、確認のうえ、「はい
43
テーブルビューで、米国製
人調査データをダブルクリッ
データシートビューが開く
ので確認
44
次の手順で、SQLビューを開く.
45
デザイン」タブで、「
」を展開し「SQL
ビュー」を選ぶ
作成」タブで、
クエリデザイン
をクリック
このような
表示が出た
ときは
閉じる」を
クリック
46
SQL ビューに、次の SQL を入れる
実行」ボタンで、SQLを実行.結果を確認.
結果を確認したら SQL ビューに戻る.
SELECT DISTINCT 教育
FROM 米国成人調査データ;
教育の属性で射影.重複行除去.
47
SQL ビューに、次の SQL を入れる
実行」ボタンで、SQLを実行.結果を確認.
結果を確認したら SQL ビューに戻る.
SELECT DISTINCT 職業
FROM 米国成人調査データ
WHERE 年収5万ドル以上か = '>50K';
年収5万ドル以上の人の職業、重複行除去
48
SQL ビューに、次の SQL を入れる
実行」ボタンで、SQLを実行.結果を確認.
結果を確認したら SQL ビューに戻る.
SELECT DISTINCT 教育
FROM 米国成人調査データ
WHERE 教育 LIKE '*大学*';
「教育」の値に「大学」を含むもの
全体まとめ
テーブル定義の例
テーブル名: メニュー
属性名: 名前、値段
属性のデータ型: テキスト、数値
制約: なし
SQL: create table メニュー (名前 text, 値段 integer);
パターンマッチ
Accessと他のDBMSの違い: Accessでは*を使用、他は%を使用
Access での SQL: SELECT * FROM メニュー WHERE 名前 LIKE '%うど
%';
データ分析の例
重複行の除去: SELECT DISTINCT 教育 FROM 米国成人調査データ;
選択: SELECT DISTINCT 職業 FROM 米国成人調査データ WHERE 年収5万
ドル以上か = '>50K';
特定の文字列を含むデータの検索(パターンマッチ): SELECT DISTINCT
FROM 米国成人調査データ WHERE 教育 LIKE '*大学*'; 49
1. データの効率的な探索と分析
SQLのパターンマッチや様々な機能を使うことで、
定の条件に合致するデータを迅速に見つけたり、有
な情報を抽出することができます。
2. 基本スキルと多様な応用
テーブル定義やデータの追加方法の繰り返し演習に
り、データベースの理解を深めます。このスキルは
データサイエンスからウェブ開発まで、多様な分野
応用可能です。
3. 柔軟性と広範な適用性
SQLは多くのデータベースシステムで使用できる汎
性があります。
50
自習1.基本的なSELECT文の練習
目的: SQLの基本的なSELECT文を使って、特定の
属性についての射影を行ってください。
ヒント: SELECT * FROM テーブル名; のような簡単
なクエリから始めてください。その後「SELECT
*」を「SELECT <属性名>」に変えてみてくださ
い。
51
今日の授業のテーブルを使用するなどで、実際に実行してみる。
自習は、提出する必要はありません。
自習2.LIKEを用いたパターンマッチング
目的: SQLLIKEを使って、特定のパターンに一致
するデータを見つける
ヒント: Access では、SELECT * FROM テーブル名
WHERE 列名 LIKE '*パターン*'; のように検索して
みてください。
52
今日の授業のテーブルを使用するなどで、実際に実行してみる。
自習は、提出する必要はありません。