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

507 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

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/de/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つの値。 1つのセルに1つの値 セルを結合するようなことは, リレーショナルデータベースでは 考えない 3

4.

今日の内容② • データベースを使うということは、データベース から必要なデータを取り出すことが基礎 データベースの主機能:問い合わせ(クエリ) 4

5.

今日の内容③ • データベース生成 → テーブル定義 → テーブル生 成の順になる コンピュータ データベースの形を登録 (テーブル定義) データベースの中身を作る (テーブル生成) 5

6.

今日の内容④ • SQL は、リレーショナルデータベースシステムの さまざまな機能を使える言語 問い合わせ(クエリ)、 その他の操作 6

7.

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

8.

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

9.

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

10.

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

11.

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

12.

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

13.

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

14.

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

15.

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

16.

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

17.

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

18.

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

19.

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

20.

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

21.

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

22.

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

23.

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

24.

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

25.

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

26.

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

27.

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

28.

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

29.

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

30.

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

31.

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

32.

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

33.

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

34.

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

35.

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

36.

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

37.

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

38.

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

39.

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

40.

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

41.

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

42.

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

43.

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

44.

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

45.

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