2. SQL,SQL のデータ型,テーブル定義,問い合わせ(クエリ)

357 Views

January 12, 22

スライド概要

(リレーショナルデータベースの基本)(全15回)
URL: https://www.kkaneko.jp/cc/ds/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

2. SQL,SQL のデータ型,テーブル 定義,問い合わせ(クエリ) URL: https://www.kkaneko.jp/cc/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 1

2.

アウトライン 番号 項目 説明時間の 目安 2-1 リレーショナルデータベースのテーブ ル 6分 2-2 問い合わせ(クエリ) 7分 2-3 属性のデータ型 8分 2-4 テーブル定義 6分 2-5 SQL による問い合わせ(クエリ) 11 分 2-6 SQL の良さ 4分 2

3.

今日の内容 • リレーショナルデータベースのテーブルは、1つ のセルに1つの値。 • データベースを使うということは、データベース から必要なデータを取り出すことが基礎 データベースの主機能:問い合わせ(クエリ) • データベース生成 → テーブル定義 → テーブル生 成の順になる • SQL は、リレーショナルデータベースシステムの さまざまな機能を使える言語 3

4.

2-1. リレーショナルデータベー スのテーブル URL: https://www.kkaneko.jp/cc/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 4

5.

データベースシステム データベースシステムは,データベースを扱う IT のシステム データベースシステム = データベース(データの集まり) + データベース管理システム(ソフトウエア) コンピュータ 利用者 利用者 ネットワーク 記憶 装置 データベース データベース 管理システム 利用者 データベースシステム 5

6.

リレーショナルデータベースシステム データベースシステムの一種 コンピュータ 記憶 装置 リレーショナル リレーショナル データベース データベース 管理システム たくさんのテーブルが格納される あわせて リレーショナルデータベースシステム 6

7.

テーブルの例 テーブル名:商品 ID 商品名 単価 1 みかん 50 2 りんご 100 3 メロン 500 7

8.

テーブルの性質 ① リレーショナルデータベースならではの決まり事 テーブル名:福山駅行き 時 8 8 8 12 17 17 リレーショナルデータベースで 扱えないテーブルの例 分 0 20 45 30 20 40 ☑ リレーショナルデータベースでは、 1つのセルに1つの値 時 8 12 17 □ 分 0, 20, 45 30 20, 40 1つのセルに複数の値を 入れることはない 8

9.

テーブルの性質 ② リレーショナルデータベースならではの決まり事 テーブル名:福山駅行き 時 8 8 8 12 17 17 リレーショナルデータベースで 扱えないテーブルの例 分 時 0 20 45 30 20 40 ☑ リレーショナルデータベースでは、 □ 1つのセルに1つの値 分 8 12 17 0 20 45 30 20 40 マルチカラムにはしない 9

10.

• リレーショナルデータベースでは、 1つのセルに1つの値 10

11.

2-2. 問い合わせ(クエリ) URL: https://www.kkaneko.jp/cc/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 11

12.

問い合わせ(クエリ) • 「問い合わせ(クエリ)」とは、 データベースの検索、集計・集約、ソート(並べ替 え)を行うこと • リレーショナルデータベースでの問い合わせ(ク エリ)の結果は、テーブル形式のデータ 12

13.

問い合わせ(クエリ)の仕組み 問い合わせ(クエリ) の結果は,テーブル形式の データ 問い合わせ (クエリ) のコマンド リレーショナル データベースシステム データの種類ごとに分かれ た、たくさんのテーブル 13

14.

問い合わせ(クエリ)の例 ① 欲しいデータを探す(検索) コマンド 結果 元データ 14

15.

問い合わせ(クエリ)の例 ② 集計,集約,ソート(並べ替え) コマンド コマンド 結果 結果 集計,集約 ソート(並べ替え) 15

16.

問い合わせ(クエリ)の例 ③ 結合(2つのテーブルを1つにまとめる) 商品 ID 1 2 3 4 商品名 単価 みかん 50 りんご 100 りんご 150 メロン 500 コマンド select * from 商品, 購入 購入 名前 ID 1 2 X Y 商品 3 1 結果 16

17.

2-3. 属性のデータ型 URL: https://www.kkaneko.jp/cc/ds/index.html 金子邦彦 17

18.

リレーショナルデータベースシステムで、テーブル を定義するとき、「属性のデータ型」を設定する必 要あり 使いたいテーブル ID 商品名 単価 1 みかん 50 2 りんご 100 3 メロン 500 数値、文字列の データを含む ※テーブル定義は、次の「2-4」の資料で説明 18

19.

テーブルと属性 テーブル ID テーブル名:商品 商品名 単価 1 みかん 50 2 りんご 100 3 メロン 500 「ID」と「商品名」と「単 価」の属性 19

20.

属性のデータ型 ID 1 2 3 整数で オートナンバー integer autoincrement 商品名 みかん りんご メロン 短いテキスト char 属性名 単価 50 100 500 テーブル の本体 整数 integer ← SQL のキーワード それぞれの属性のデータ型 ※オートナンバーは,自動で 1,2,3 のよ うに通し番号が付くもの 20

21.

属性のデータ型 Access の主なデータ 型 SQL のキーワー ド 短いテキスト 長いテキスト 数値 NULL char text integer, real 日付/時刻 Yes/No datetime bit, bool 空値 文字列 文字列 整数や浮動小数 点数 日付や時刻など ブール値 ※ 整数は integer, 浮動小数点数(小数付きの数) は real ※ 短いテキストは半角 255文字分までが目安 それ以上になる可能性があるときは長いテキスト 21

22.

2-4. テーブル定義 URL: https://www.kkaneko.jp/cc/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 22

23.

データベースの構築手順 ID ID データベース データベース 生成 設計 ※ 最初,デー タベースは空 購入 者 商品 ID 名前 数量 ID 購入 者 「こういうテーブルを使い たい」と設定するだけなの で、テーブルは空 数量 1 X 1 10 2 Y 2 5 ID 名前 単価 テーブル定義 商品 ID 単価 1 みかん 50 2 りんご 100 3 りんご 150 テーブル生成 23

24.

テーブル定義 テーブル定義では、 ・テーブル名 ・属性の属性名 ・属性のデータ型 などを設定して、テーブルを定義する 24

25.

Access のデザインビューを用いたテーブル定義 テーブル名 属性名とデータ型 テーブル定義するときに、 テーブル名、属性名、データ型を設定 25

26.

SQL コマンドを用いたテーブル定義 ■ SQLite3 システムの場合 ■ マイクロソフト Access の場合 テーブル名:商品 属性名とデータ型 ID integer 商品 char 単価 integer 26

27.

2-5. SQL による問い合わせ (クエリ) URL: https://www.kkaneko.jp/cc/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 27

28.

SQLの使い方 ID 1 2 3 名前 単価 みかん 50 りんご 100 りんご 150 リレーショナルデータベースシステムに コマンドを送る データ ベース データベース 利用者 結果が返ってくる

29.

問い合わせ(クエリ)の例 SELECT * FROM 成績 問い合わせ(クエリ) のコマンド 元のテーブルのまま表示 成績テーブル ID 名前 単価 1 みかん 50 2 りんご 100 3 りんご 150 29

30.

問い合わせ(クエリ)の例 SELECT 名前, 単価 FROM 商品 問い合わせ(クエリ) のコマンド 必要な属性を選ぶ(射影) 商品テーブル ID 名前 単価 1 みかん 50 2 りんご 100 3 りんご 150 30

31.

問い合わせ(クエリ)の例 SELECT 名前, 単価 FROM 商品 WHERE 単価 > 80; 問い合わせ(クエリ) のコマンド 必要な属性を選び(射影), 行を絞り込む(選択) 商品テーブル ID 名前 単価 1 みかん 50 2 りんご 100 3 りんご 150 31

32.

SQL による問い合わせの例 ① SELECT * FROM 商品; ② SELECT 名前, 単価 FROM 商品; ③ SELECT 名前, 単価 FROM 商品 WHERE 単価 > 80; SQLは簡潔で単純! 32

33.

補足説明 • SQL では、大文字、小文字を区別しない SELECT, select は同じ意味 • SQL では、途中で改行してもかまわない □ 読みやすくするために、改行することが多い • SQL では、末尾の「;」を省略できる場合がある □ SQL文を 1つしか書かないときは: 末尾の「;」があってもなくても同じ意味 □ 2つ以上の SQL 文を続けて書きたい場合は 文の区切りを示すために「;」が必要 33

34.

問い合わせ(クエリ) • 「問い合わせ(クエリ)」とは、 データベースの検索、集計・集約、ソート(並べ替 え)を行うこと • リレーショナルデータベースでの問い合わせ(ク エリ)の結果は、テーブル形式のデータ • SQL では 1コマンドで書くことができる 34

35.

SELECT * FROM <テーブル名> 元の単一テーブルをそのまま出力 ID 1 2 3 4 名前 単価 みかん 50 りんご 100 SELECT * FROM 商品; りんご 150 メロン 500 ID 1 2 3 4 名前 単価 みかん 50 りんご 100 りんご 150 メロン 500 35

36.

SELECT <属性名リスト> FROM <テーブル名> 属性を限定する ID 1 2 3 4 名前 単価 みかん 50 りんご 100 りんご 150 メロン 500 SELECT 名前, 単価 FROM 商品; SELECT 名前 FROM 商品; 名前 単価 みかん 50 りんご 100 りんご 150 メロン 500 名前 みかん りんご りんご メロン 36

37.

WHERE 付き 行の選択 ID 1 2 3 4 名前 単価 みかん 50 りんご 100 りんご 150 メロン 500 SELECT 名前, 単価 FROM 商品 WHERE 単価 > 80; 名前 単価 りんご 100 りんご 150 メロン 500 37

38.

2-6. SQL の良さ URL: https://www.kkaneko.jp/cc/ds/index.html 金子邦彦 38

39.

SQL SQL は、リレーショナルデータベースにおいて、 問い合わせ(クエリ)、テーブル定義、その他の操 作を行うためのデータベース言語 39

40.

ツール,SQL の両方が大切 今日の授業で学ぶこと ツール マイクロソフトAccess のクエリのデザインビュー(Access だ けで動くツール)など マウスと キーボード SQL(SQLは世界標準) SELECT ID, 商品, 単価 FROM 商品; コマンド言語 40

41.

SQL の良いところ • SQLは、すべてのリレーショナルデータベース管理シス テムで通用する共通言語 リレーショナルデータベース管理システムの例 Access, SQL Server, Oracle, MySQL, PostgreSQL, SQLite3, Firebird, ・・・ ・SQLはコマンド言語なので、自動実行が簡単. 41

42.

コマンドの良さ • コマンド = コピー&ペーストできる • 同じ作業を繰り返したいとき、コピー&ペースト で済む • 作業記録を残し、あとで確認するのも簡単! • 他の人に教えたいとき、他の人から教わりたいと きも、コマンドの方が再現や真似が簡単に済む場 合が多い 42

43.

関連資料 • リレーショナルデータベース序論(全4回) 全体を知る. https://www.kkaneko.jp/cc/di/index.html • リレーショナルデータベースの基本(全15回) 基礎を学ぶ. https://www.kkaneko.jp/cc/ds/index.html • リレーショナルデータベース演習(全15回) 演習により修得する. https://www.kkaneko.jp/cc/de/index.html 43