SlideShare a Scribd company logo
1 of 30
Download to read offline
第 1 回 S Q L 勉 強 会
⾃⼰紹介
2
⽂系私⽴⼤学卒。卒業後、図書館で勤務。
勤務中にデータ分析に興味を持ち、IT業界へ。
⼊社した企業で、半年間の数学、プログラミングの研修を経て
データ分析の実務へ。
広告系の企業にて、ユーザー分析や、レコメンドエンジンの
モデル開発、実装を担当。
昨年、8⽉にFabeee ⼊社
4匹の飼い猫とガンバ⼤阪をこよなく愛する⼈間
アルテミス
2世
きつねさん a.k.a モフ
さんま
お⼿元に環境が⽤意できない⽅へ・・
ブラウザでSQLを実⾏できるサイトをご紹介します
SQL Zoo
https://sqlzoo.net/wiki/SQL_Tutorial
SQL Fiddle
http://sqlfiddle.com/#!17/e1277/1
© Fabeee Inc. 3
データベースとは
4
様々なデータを格納する場所
SQLはデータベースに対して命令を送ることで
特定のデータを抽出することができます
※今⽇はデータベースに関することは特に触れません
データベースの中⾝のイメージ
データベースの中には表形式で表現されているテーブルというものがあります
このテーブルには名称があります
例として、user テーブルというものを⾒てみましょう
© Fabeee Inc. 5
ID
1
2
name
Aさん
Bさん
・・・
・・・
・・・
User テーブル名:表の名前
カラム(フィールド)
:列⽅向のデータ
レコード:⾏⽅向のデータ
データベースの中⾝のイメージ②
このuserテーブルを⾔語化してみると・・・
UserテーブルのnameカラムのAさん
UserテーブルのIDカラム 2
ということになります
この値にはデータ型というものもあります
name : ⽂字型
ID : 整数型
© Fabeee Inc. 6
ID
1
2
name
Aさん
Bさん
・・・
・・・
・・・
User
データベースの中⾝のイメージ③
© Fabeee Inc. 7
テーブル構造はエクセルと同じです。こうするとイメージしやすいですよね?
データ型について
前ページで触れたデータ型について触れてみたいと思います
数字がデータとして格納されているが、実はデータ型だったということがよくあります
⽂字型と数値型の計算はできないので要注意!!!
© Fabeee Inc. 8
数値型
Int
bigint
符号付き整数
float 浮動少数点数値
⽂字型
char 固定⻑の⽂字列
Varchar 可変⻑の⽂字列
論理値型 Boolearn 論理値
データの値を特定するための必要なデータ
データ分析をすすめていくと、複数のデータを1つにまとめたかったりすることがある
特定の値を基に結合する
その値のことを主キー(primary key)と呼びます
他のテーブルの関連付けの値を外部キー(foreign key)と呼びます
© Fabeee Inc. 9
ID
name
ID
shop_id
ID
T-sihrt
user shop item
ID
shop_id
user_id
ID
name
ID
T-sihrt
user_id
shop_id
user shop item
ここで⼀旦コーヒーブレイク
© Fabeee Inc. 10
SQLについて
© Fabeee Inc. 11
先⽉のシャツの売り上げを
知りたい
上司からこんな要望がありました
© Fabeee Inc. 12
SQLについて
上司からそんな要望があった場合は、紙などの履歴から⼿計算をするのもいいかもしれませんが、
結構⼤変・・・・
そこでシャツの購⼊履歴データがデジタルで保管されているならば、そこから抽出することですぐに
結果を渡すことができますね
ここで、必要になるのが、SQLになります
© Fabeee Inc. 13
SQLについて
SQLとはデータベースに対して命令をすることができる⾔語のことを指します
データベースへの命令をクエリと呼びます
© Fabeee Inc. 14
このデータをください : クエリ
SQLについて
実際にSQLを⾒てみましょう
先ほどの例で⾔うと先⽉のシャツの売り上げを抽出するものをSQLで書いてみましょう
© Fabeee Inc. 15
SELECT
SUM(price)
FROM
item
WHERE
name = “T-shirt”
AND
date BETWEEN ʻ2021‒06-01ʼ AND ʼ2021‒06-31ʼ ;
上記のような書き⽅で先⽉のTシャツの値段を抽出することができます
今回⾚字で書いたところがSQL⾔語となります
次ページよりここを解説していきたいと思います
SQLについて
どの値が欲しいのか
SELECT
どこから値を抽出するのか
FROM
これがSQLの基本になります
この基本に対して他の条件を追加して
様々なデータを抽出していきます
© Fabeee Inc. 16
SELECT
*
FROM
テーブル名
FROM SELECT
SQLについて
先ほどの基本構⽂から少し発展させてみましょう
条件を追加してみよう
先ほどの基本構⽂に抽出する件数に制限をつけてみましょう
では、情報を3件だけ抽出してみましょう
© Fabeee Inc. 17
SELECT
*
FROM
ITEM
LIMIT
3
;
SQLについて
抽出したいデータに対して件数の制限を持たせたい場合には、LIMIT句を使⽤します
次に集計関数について確認してみたいと思います
エクセルなどを使われた経験がある⽅だと、ここはどこに関数を書くのか
ということを覚えるだけですんなり覚えられると思います
© Fabeee Inc. 18
集計したい内容 SQL関数
件数を数えたい COUNT
最⼤値を知りたい MAX
最⼩値を知りたい MIN
平均値を知りたい AVG
合計値を知りたい SUM
SELECT
集計関数(カラム名)
FROM
テーブル名 ;
SQLについて
データの集計を進めていくと、重複のある値が出現することがあります
これを排除したい際には集計関数と組み合わせることが可能となる
あるカラムのユニークな数が知りたいとしましょう
© Fabeee Inc. 19
SELECT
COUNT( DISTINCT カラム名),
FROM
テーブル名 ;
こうすることで、あるカラムのユニークの数を抽出することが可能となります
SQLについて
抽出結果をある値についてソートしたいこともあると思います
これを実現したい際は、
© Fabeee Inc. 20
SELECT
カラム名,
FROM
テーブル名
ORDER BY
カラム名
;
通常ですと昇順ですが、降順にみたいこともあると思います
その際は、
ORDER BY
カラム名 DESC
;
SQLについて
⼀番最初の例で⾒たところでWHEREという関数が出てきました
次はこれを掘り下げていきたいと思います
⽐較的多くの場⾯で⾒かけることが多いと思います
これは、抽出したいもののフィルタリングをする際に使⽤します
Ex.1
値同⼠の⽐較 < , > , <=, >= … etc
EX.2
カラム名 = ○○
EX.3
AND, OR, NOT
EX.4
BETWEEN
© Fabeee Inc. 21
SQLについて
⽐較演算
具体例を考えてみたいと思います
ある値段以下の商品を抽出したいと思います
ここでは、値段が1000円以下の商品が欲しいと考えたいと思います
© Fabeee Inc. 22
SELECT
*
FROM
テーブル名
WHERE
price <= 1000
;
SQLについて
論理演算
これは条件抽出の発展です
抽出したい値が
〇〇かつ××
または
〇〇または××
上記のような条件を指定することが可能です
これを具体例で落とし込んでみたいと思います
© Fabeee Inc. 23
SQLについて
ある特定のお店で購⼊された商品を指定して抽出してみたいと思います
© Fabeee Inc. 24
SELECT
*
FROM
テーブル名
WHERE
item_id = 1
AND
shop_id = 5
;
SQLについて
ある複数のお店のデータを抽出してみたいと思います
© Fabeee Inc. 25
SELECT
*
FROM
テーブル名
WHERE
shop_id = 1
OR
shop_id = 5
;
SQLについて
データの中にある値が含まれているか確認したいことがあります
その時もWHEREを使⽤してデータを抽出します
データの値に対してパターンマッチングをしたいと思います
具体例として名前に⼭⽥という名字が含まれているユーザーを抽出したい
© Fabeee Inc. 26
SELECT
*
FROM
テーブル名
WHERE
user_name = ʻ%⼭⽥%ʼ
;
パターンマッチングについて少し補⾜します
様々なパターンがあります
下記を参照に様々なパターンを試してみてください
※ _ でのパターンマッチングもあります
ご⾃⾝で調べてみてください
© Fabeee Inc. 27
記法 内容
%○○% ○○を含む
%○○ ○○で終わる
○○% ○○で始まる
SQLについて
次にWHERE句の範囲指定です
これはある期間内に販売されたものについて知りたい時などに使⽤します
© Fabeee Inc. 28
SELECT
*
FROM
テーブル名
WHERE
date BETWEEN ʼ2021-06-01ʼ AND ʻ2021-06-31ʼ
;
最後に・・・
お疲れ様でした
全4回の初回が終わりました
SQLに慣れていただくことをメインに実施させていただきました
第2回はここから少し発展した内容をやっていきます
© Fabeee Inc. 29
H I T O
∼ I T は 人 な り ∼

More Related Content

Similar to Sql第1回資料

クラウドが変えるwebの世界
クラウドが変えるwebの世界クラウドが変えるwebの世界
クラウドが変えるwebの世界
Satoshi Ishikawa
 

Similar to Sql第1回資料 (20)

新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
japan teacher
japan teacherjapan teacher
japan teacher
 
吉田★学習スタイルコーディネート★ラボイベント&lt;学習スタイルコーディネート>
吉田★学習スタイルコーディネート★ラボイベント&lt;学習スタイルコーディネート>吉田★学習スタイルコーディネート★ラボイベント&lt;学習スタイルコーディネート>
吉田★学習スタイルコーディネート★ラボイベント&lt;学習スタイルコーディネート>
 
JAWSDAYS 2018 LUNCH SESSION
JAWSDAYS 2018 LUNCH SESSIONJAWSDAYS 2018 LUNCH SESSION
JAWSDAYS 2018 LUNCH SESSION
 
インフラエンジニア必見!勉強会の歩き方
インフラエンジニア必見!勉強会の歩き方インフラエンジニア必見!勉強会の歩き方
インフラエンジニア必見!勉強会の歩き方
 
クラウドが変えるwebの世界
クラウドが変えるwebの世界クラウドが変えるwebの世界
クラウドが変えるwebの世界
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
 
MySQL Workbench をモデリングツールとして使ってみた
MySQL Workbench をモデリングツールとして使ってみたMySQL Workbench をモデリングツールとして使ってみた
MySQL Workbench をモデリングツールとして使ってみた
 
Data-Centric AI開発における データ生成の取り組み
Data-Centric AI開発における データ生成の取り組みData-Centric AI開発における データ生成の取り組み
Data-Centric AI開発における データ生成の取り組み
 
DevLove Kansai AWS
DevLove Kansai AWSDevLove Kansai AWS
DevLove Kansai AWS
 
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
 
Apple bu20100721
Apple bu20100721Apple bu20100721
Apple bu20100721
 
Elasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリElasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリ
 
変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?変数の重要度ってどうやったらわかるん?
変数の重要度ってどうやったらわかるん?
 
It企業向けのdrupal構築アドバイス slideshare
It企業向けのdrupal構築アドバイス slideshareIt企業向けのdrupal構築アドバイス slideshare
It企業向けのdrupal構築アドバイス slideshare
 
16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...
16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...
16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
 
Data Scientists Love SQL Server
Data Scientists Love SQL ServerData Scientists Love SQL Server
Data Scientists Love SQL Server
 
Spath for enterprise
Spath for enterpriseSpath for enterprise
Spath for enterprise
 
Light switch × sql azure
Light switch × sql azureLight switch × sql azure
Light switch × sql azure
 

Sql第1回資料