2. SQL の基本
SQL の役割、テーブルと属性、テーブル
定義、問い合わせ(クエリ)
1
URL: https://www.kkaneko.jp/de/ds/index.html
金子邦彦
謝辞:この資料では「いらすとや」のイラストを使用しています
キャリア面での成長
データベースを用いた意思決定のスキル向
自己成長と問題解決能力の向上
現代のデジタル化されたビジネス環境において価値があり、
個人および組織の成功に寄与
2
アウトライン
1. データベースシステムの基本概念
2. リレーショナルデータベースの特
3. テーブルの構造
4. 問い合わせ(クエリ)の役割
5. SQL
6. SQL によるテーブル定義
7. SQL による問い合わせ(クエリ)
3
2-1. データベースシステムの
基本概念
4
データベースとは
5
データベースは、特定のテーマや目的に従って収集され
大量のデータ
取引
計測
データ収集
記入
データベース
撮影 データ保存
銀行、商店、交通機関、電話会社などさまざま
データベースシステムとは
データベースシステムは,データベースを扱う IT のシステム
【主要目的】
大量のデータ安全かつ効率的に保存、管理、検索、共有す
ることで、迅速な業務実行と正確な意思決定が可能になる。
6
データベースシステム
データベース(データの集まり)
データベース管理システム(ソフトウエア)
2-2. リレーショナルデータ
ベースの特性
7
リレーショナルデータベースと他のデータベース
の違い
リレーショナルデータベース
データをテーブルと呼ばれる表形式で保存
(この形式は、エクセルのワークシートに似ている)
SQL 言語を使って、データの管理と検索が行える
テーブル形式でデータを整理することで、データの構造化、
整合性、永続性が保証される
他のデータベース
NoSQL」などの別の種類のデータベースでは、データ形
式がより柔軟である
データ形式は柔軟であるが、データの構造化と整合性に関
する能力はリレーショナルデータベースより制限される。 8
リレーショナルデータベースの仕組み
データをテーブルと呼ばれる表形式で保存
テーブル間関連で結ばれる。複雑な構造を持ったデータ
を効率的に管理すること可能に。
9
関連
リレーショナルデータベースが普及している理由
使いやすい
信頼性が高い
データをテーブルと呼ばれる表形式で保存(エクセルに似
ていてなじみやすい)
データの管理と検索が、SQL 言語を使って、簡単に行える
10
2-3. テーブルの構造
11
テーブルと属性
12
テーブル
ID」と「商品名」と「
」の属性
テーブル名:商品
ID
商品名
単価
1
みかん
50
2
りんご
100
3
メロン
500
テーブルの属性(列)と行
属性(列)
データの種類に対応する
ID、商品名、単価など
属性に基づいた具体的な
データの集まり
1 みかん 50」など
13
属性のデータ型
14
テーブル
の本体
属性名
それぞれの属性データ
整数で
オートナンバー テキスト 整数
※オートナンバーは,自動で 1,2,3 のよ
うに通し番号が付くもの
ID 商品名 単価
1
みかん
50
2
りんご
100
3
メロン
500
属性のデータ型
15
Access
の主なデータ
のキーワー
短いテキスト
テキスト
数値
日付/時刻
Yes
No
整数INTEGER, 浮動小数点数(小数付きの
数)REAL
短いテキスト半角 255文字分までが目安
それ以上になる可能性があるときはテキスト
テーブルのセル
セル
属性と行が交差したところ
に位置する
セルには、1つの値だけが
入る
セルに入る値は、属性の
データ型に応じたものでな
ければならない
16
テーブルの性質
17
8
0,
20, 45
12
30
17
20, 40
テーブル名:福山駅行き
1つのセルに複数の値を
入れることはない
リレーショナルデータベースでは、
1つのセルに1つの値
8
0
8
20
8
45
12
30
17
20
17
40
リレーショナルデータベースで
扱えないテーブルの例
テーブルの性質
18
マルチカラムにはしない
リレーショナルデータベースで
扱えないテーブルの例
8
0
20
45
12
30
17
20
40
テーブル名:福山駅行き
リレーショナルデータベースでは、
1つのセルに1つの値
8
0
8
20
8
45
12
30
17
20
17
40
まとめ 属性(列)
データの種類を表す(例:ID商品
)。
属性は特定のデータ型を持つ
(例:整数)。
行:
属性に基づいてデータを格納。例:
1, みかん, 50」。
セル:
属性と行が交差する点に位置する。
一つのセルには一つの値のみ
19
2-4. 問い合わせ(クエリ)の
役割
20
問い合わせ(クエリ)とは何か
問い合わせ(クエリ)は、データベースから必要なデータ
を検索、加工するための指令のこと。
リレーショナルデータベースシステムにおいては、問い合
わせ(クエリ)は、 SQL を使用して実行できる。
21
問い合わせの目的と用途
1.データの検索: 何らかの条件に合致するデータを見つけ出
2.データの加工: 不要なデータは表示しない集計・集約
計算並べ替え(ソート)、複数テーブルの結合など
3.データの挿入: データベースに新規データを追加
4.データの更新: すでに存在するデータの変更
5.データの削除: 不要なデータの除去
22
問い合わせ(クエリ)の仕組み
23
問い合わせ
(クエリ)
問い合わせ(クエリ)
最終結果
データベースシステム
問い合わせ(クエリ)の仕組み
発行: 「問い合わせ」をデータベースシステムに送信
解析・取得: 「問い合わせ」が解析され、必要なデータが
データベースから読み込まれる。
加工: 計算、集計・集約、並べ替え(ソート)、結合など
のさまざまな加工が行われる。
返却: 結果を、ユーザーやアプリケーションに送る。
24
問い合わせ(クエリ)の役割まとめ
問い合わせ(クエリ)データベースからデータを取得・操
作する指令。リレーショナルデータベースシステムでは、通
常は、SQLを使用。
目的と用途
検索: 条件に合ったデータを抽出
加工: 集計・集約、並べ替え(ソート)、結合など
挿入、更新、削除: 新規データの追加、既存データの修正、
不要データの除去。
問い合わせはデータの効率的な検索、加工、管理に不可欠
25
2-4. SQL
26
SQL
SQL は、リレーショナルデータベースシステムで、
問い合わせ(クエリ)や、その他、さまざまな機
を実行できる
27
人間が SQL を作成し、実行
プログラムの中で
SQL の機能を利用
SQL の重要性
問い合わせSQLを使用してデータの検索、加工、挿入、
更新、削除が行える。
テーブル定義SQLでデータベースのテーブル構造を定義
することができる。
簡潔さ少量のSQLで複雑なデータ操作が可能。
汎用性:多くのリレーショナルデータベースで対応し、
界標準として広く採用されている。
柔軟性:データの並べ替え(ソート)、集計・集約など、
多様な操作が可能。
性能:小規模から大規模なデータベースに対応し、高いパ
フォーマンスを発揮
リレーショナルデータベースシステムの主要機能
28
問い合わせ(クエリ)の例
データの検索
29
元データ
結果
SQL
問い合わせ(クエリ)の例
集計・集約,並べ替え(ソート)
30
集計・集約 並べ替え(ソート)
SQL SQL
問い合わせ(クエリ)の例
2つのテーブルの結合
31
結果
SQL
select * from 商品, 購入
ID 名前 商品
1
X
3
2
Y
1
購入
ID
商品名
単価
1
みかん
50
2
りんご
100
3
りんご
150
4
メロン
500
商品
SQLの実用例
SQL コマンドによるデータベースの利用
データ検索、給与が50,000以上の従業員の情報を全て取得
SQL: SELECT * FROM employees WHERE salary > 50000;
データ挿入、名前が'John'、年齢が30、給与が55,000の新しい従業員を追加
SQL: INSERT INTO employees (name, age, salary) VALUES ('John', 30, 55000);
データ削除、年齢が60より上の従業員のデータを削除
SQL: DELETE FROM employees WHERE age > 60;
プログラム中の処理の一部を SQL で実行
注文処理、ユーザーID1で商品ID101の商品を2個注文します。
SQL: INSERT INTO orders (user_id, product_id, quantity) VALUES (1, 101, 2);
データ分析での SQL の役割
202211日から2022131日までの売上合計を計算
SQL: SELECT SUM(sales_amount) FROM sales WHERE date BETWEEN '2022-
01-01' AND '2022-01-31'; 32
SQL 活用のビジョン
データ管理
リアルタイム情報: ウェブサービスやアプリケーションでリアルタ
イムにデータを参照・更新。
:オンラインショッピングサイトでの在庫確認
データの自動分析
自動化: 定期的なレポート作成、データのクリーニングなどを自
化。
: 毎月の売上レポートの自動生成
データの安全性と一貫性
リレーショナルデータベースシステムのトランザクションの機能
を活用
: 銀行での送金処理
データの共有
リレーショナルデータベースを他社と共有
: 在庫データをサプライヤーと共有SQLでデータアクセス 33
SQL の機能概要
問い合わせ
select, from, where: データの検索・加工する
insert into: 新しい行をテーブルに追加(挿入)
update, set: 条件に一致する行を更新
delete from: 条件に一致する行を削除
group by: データを条件でグループ化(集計・集約のため)
order by: データを昇順・降順で並べる
テーブル定義
create table: テーブル定義
その他多数の機能
34
別の回で詳細を説明
SQL の未来展望
AIとの連携
AI SQL コマンドを自動生成。高度な分析。
リアルタイム分析
携帯無線通信を活用。リアルタイムでのデータ分析や
共有がより便利に
35
SQL の文法
大文字小文字
SQLは大文字・小文字を区別しない
SELECTselectは同じ。
改行
SQL文は途中で改行しても問題ない。
改行はコードの可読性を高める。
セミコロン (;)
一つのSQL文のみの場合、末尾の;省略可能
2つ以上のSQL文を連ねる場合は、;で文を区切る必要があ
る。
36
SQL まとめ
SQLの基本機能
問い合わせ: select
テーブル定義: create table
簡潔さ: 多機能であり、短い SQL でもさまざまな機能を使える
汎用性: 複数のリレーショナルデータベースシステムで使用可能。
実用例
データを最新に保つための操作: insert, detete など。
データ分析: 売上、トレンド分析。
活用のビジョン
データ管理: リアルタイムでデータを利用、更新。
自動化: レポート生成。
文法の特性
大文字小文字: SQL は、大文字、小文字を区別しない
セミコロン: 複数文では必須。
37
2-6. SQL によるテーブル定義
38
39
データベースの構築手順
テーブル定義
「こういうテーブルを使い
たい」と設定するだけなの
で、テーブルは
データベース
生成
最初,デー
タベースはデータ追加
データベース
設計
ID 購入
商品
ID
数量 ID 購入
商品
ID
数量
1
X
1
10
2
Y
2
5
ID 名前 単価
1
みかん
50
2
りんご
100
3
りんご
150
ID 名前 単価
テーブル定義とデータの追加
テーブル定義を行う
データベース内でデータをどのように格納するかをデザイン
(設計)し、データベースシステムで設定する
テーブル名の指定
属性名の指定
属性のデータ型の指定: 例、「数字」、「テキスト」な
データの整合性を保つための制約の指定も可能 例、
「同じ番号は2度現れない」など
続いて、テーブルに実際のデータを追加
テーブル定義で設定した属性、データ型、制約に従ってデー
タベースを整備 40
テーブル定義とデータの追加
テーブル定義
テーブル名商品
属性名ID、商品名、単価
属性のデータ型数値、テキスト、数値
データの整合性を保つための制約なし
続いて、テーブルに実際のデータを追加
41
ID 商品名 単価
1
みかん
50
2
りんご
100
半角数値 テキスト 半角数値
テーブル定義を行う SQL
create table
テーブルを定義する。
create table テーブル名 (1 1, 2 2);
42
SQL によるテーブル定義
テーブル名商品
属性名ID、商品名、単価
属性のデータ型数値、テキスト、数値
データの整合性を保つための制約なし
43
半角数値 テキスト 半角数値
ID 商品名 単価 create table 商品 (
ID autoincrement,
商品名 text,
単価 integer
);
SQL
Access では
integer autoincrement」と
書かずに「autoincrement
SQL によるテーブル定義
44
テーブル名:商品
ID
商品名
単価
1
みかん
50
2
りんご
100
3
メロン
500
create table 商品 (
ID autoincrement,
商品名 text,
単価 integer
);
SQL
Access では
integer autoincrement」と
書かずに「autoincrement
区切りの半角カンマ
2-7. SQL による問い合わせ
(クエリ)
45
SQL のキーワード select, from, where
select
問い合わせ(クエリ)のための基本的な命令。
取得したいデータの指定
from
データ取得の対象となるテーブルを指定
例:select * from テーブル名;
where
特定の条件を満たす行の選択
例:select * from テーブル名 where 1 = 1;
46
SQLの使い方
データ
ベース
データベース
利用者
リレーショナルデータベースシステムに
コマンドを送る
結果が返ってくる
ID 名前 単価
1
みかん
50
2
りんご
100
3
りんご
150
48
問い合わせ(クエリ)のバリエーション
SQLは簡潔で単純
select * from 商品;
select 商品名, 単価 from 商品;
select 商品名, 単価 from 商品 where 単価 > 80;
問い合わせ(クエリ)のバリエーショ
49
商品テーブル
問い合わせ(クエリ)
コマンド
ID
商品名
単価
1
みかん
50
2
りんご
100
3
メロン
500
select * from 商品
元のテーブルのまま表示
問い合わせ(クエリ)のバリエーショ
50
商品テーブル
問い合わせ(クエリ)
コマンド
select 商品名, 単価 from 商品
必要な属性を選ぶ(射影
ID
商品名
単価
1
みかん
50
2
りんご
100
3
メロン
500
問い合わせ(クエリ)のバリエーショ
51
商品テーブル
問い合わせ(クエリ)
コマンド
select 商品名, 単価 from 商品
where 単価 > 80; 必要な属性を選び(射影),
行を絞り込む(選択
ID
商品名
単価
1
みかん
50
2
りんご
100
3
メロン
500
52
SELECT * FROM <テーブル名>
SELECT * FROM 商品;
元の単一テーブルをそのまま出力
ID 名前 単価
1
みかん
50
2
りんご
100
3
りんご
150
4
メロン
500
ID 名前 単価
1
みかん
50
2
りんご
100
3
りんご
150
4
メロン
500
53
SELECT <属性名リスト> FROM <テーブル名>
SELECT 名前, 単価 FROM 商品;
SELECT 名前 FROM 商品;
ID 名前
単価
1
みかん
50
2
りんご
100
3
りんご
150
4
メロン
500
名前
単価
みかん
50
りんご
100
りんご
150
メロン
500
名前
みかん
りんご
りんご
メロン
属性を限定する
SELECT 名前, 単価 FROM 商品
WHERE 単価 > 80;
54
WHERE 付き
選択
ID 名前
単価
1
みかん
50
2
りんご
100
3
りんご
150
4
メロン
500
名前
単価
りんご
100
りんご
150
メロン
500
全体まとめ①
2-1. データベースシステムの基本概念
データベース大量のデータの集まりで、データベースシステムそれ
を扱うITのシステム
データベースシステムの主要な目的はデータの安全な管理効率的な
検索、共有によって業務の迅速化と正確な意思決定を可能にすること。
2-2. リレーショナルデータベースの特性
テーブル形式でデータを保存し、SQL言語を使用してデータの管理と検
を行う。
データは構造化され、整合性と永続性を保証
リレーショナルデータベースは使いやすく、信頼性が高いため普及して
いる。
2-3. テーブルの構造
テーブル属性(列)から構成され、属性はデータ型を持つ
属性のデータ型は整数文字列など。
セルには、1つの値だけが入る。セルの値は、属性のデータ型に従う。
55
全体まとめ②
2-4. 問い合わせ(クエリ)の役割
データベースからデータを検索、加工などするための指令
主な目的はデータの検索、加工、挿入、更新、削除
2-5. SQL
SQLはリレーショナルデータベースシステムで使用される言語
問い合わせ(select)、データ挿入(insert)、データ更新(update)、
データ削除(delete)などがあり、不可欠なもの
2-6. SQLによるテーブル定義
テーブル名属性名属性のデータ型制約などを指定。
create table テーブル名 (1 1, 2 2); のようになる。
2-7. SQLによる問い合わせ
select, from, where により、射影選択などを行う。
56
キャリア面での成長
データベース管理およびSQLスキルは、多くの産業や職種で
非常に重要です。データアナリスト、データベース管理者、
ソフトウェアエンジニアなどの職種において、SQLスキルを
持つことはキャリア面での成長につながります。
データベースを用いた意思決定のスキル向
データベースとSQLの理解は、データベースを利用した意思
決定に不可欠です。データを収集、整理、分析し、意思決定
に活かす能力は、リーダーシップ力を強化します。データ分
析を通して、洞察を得ることことは、戦略的な意思決定のス
キル向上につながります。
自己成長と問題解決能力の向上
SQLを学ぶことは、問題解決能力の向上につながります。
SQLを考えるプロセスは、論理的思考を養います。これらス
キルの向上で、自己成長が促進されます。また、新しい技術
やツールを学びたいという意欲向上につながります。
現代のデジタル化されたビジネス環境において価値があり、
個人および組織の成功に寄与 57
自習
自習1.データベースシステムの基本概念
目標:データベースシステムの基本的な理解を深める
課題:
インターネットや授業の資料を用いて、以下のトピックについて自習し、
自分の言葉でまとめてください。
1. データベースとは何か?
2. データベースシステムの主要な目的は何か?
3.データベースシステムの重要性
ヒント:インターネットなどで調べ、自分自身で要点をまとめるとき、
理解を深めるために、実際の例やアプリケーションも意識して調べてみ
てください。
(提出の必要はありません)
58
自習
自習2.リレーショナルデータベースの特性
目標:リレーショナルデータベースの特性を理解について理解を深める
課題:
インターネットや授業の資料を用いて、以下のトピックについて自習し、
自分の言葉でまとめてください。
1.リレーショナルデータベースと他のデータベースの違いは何か?
2.リレーショナルデータベースの仕組みについて説明してみてください。
ヒント:リレーショナルデータベースと他のデータベース(例:
NoSQL)の違いや、リレーショナルデータベースのテーブル構造に焦点
を当てて学習しましょう。自主的に、好奇心を持って行動することは、
自立力の向上にも大切です。
(提出の必要はありません)
59
自習
自習3.テーブル定義
目標: テーブル定義について理解を深める
課題:
①まず、テーマを決めてください。自分が興味を持てるものを自由に
決めてください。
図書館、学生管理、在庫管理など
②①で決めたテーマには、どのようなデータが必要ですか
③②を考えながら、テーブル定義(テーブル名や属性名)を考察して
みてください
ヒント:将来の授業で「テーブル定義」の実際にやり方を学んだら、
Access 等を使って、テーブル定義にもチャレンジすることで、自分で考
えたテーブル名や属性名が良さそうか、確認できます。
(提出の必要はありません)
60