Webディレクター向けSQL講座を開いたので資料共有
所属チーム内で数値を扱うことが増えてきた。エンジニアがいい感じに抽出してたのだけど「皆つかえればサイキョーね?」と思ったので勉強会を開くことに。 なんやかんやあってチーム外にも波及して、ディレクター・デザイナ・CSが10名以上で受ける大所帯になった。 そこそこ好評なので資料を共有します。
カリキュラム
- 第1回 「行と列と正規化」
- お話し
- 第2回 「抽出行をしぼる」
select
from
where
order by
limit
- 第3回 「抽出行をいっぱいしぼる」
and
or
like
>
<
<>
in
- 第3回 「抽出行をまとめる」
distinct
group by
min
max
count
having
- 第4回 「表をつなげる」
inner join
left join
- 第5回 「抽出結果でしぼる」
- サブクエリ
- 第6回 「抽出結果を組み合わせる」
union
- 第7回 「列表示を置換する」
case
- 第8回 「エンジニアが作ったサービス分析用のSQLを眺める」
- 実際の(複雑な)リレーションを理解する
より身につけるには
- 飲み物を持参しよう
- 脳は水が必要
- 身近な例に置き換えて聞いてみよう
- 感情移入しよう
- 遠慮なく声を出そう
- 聞く(input)だけじゃなく、口に出して確認(output)してみよう
第1回 「行と列と正規化」
うまく「使う」ために、製作者(RDBMS, table設計)のねらいを理解します。
質問コーナー
エンジニアさんが「レコード」とか言ったりするのを聞くことがるのですが、「テーブル」と何が違うのでしょうかー?
なるほどなるほど。 初学者とエンジニアではそもそもの認識が違ってそうですね! イメージはこんな感じかな
Excel や物理的に書いた表をイメージするので、テーブル = 行と列を組み合わせたデータが入ってるやつ
という認識ですよね?(本日の講義でも実際にそのように説明した)
ところが、エンジニア同士が会話する場合は、もうちょっと機械に寄った会話をします。
その際テーブルは どんなデータを入られる構造か
という概念を指すことが多く、レコードは テーブルに実際入れたデータ(1行)
を指します。
エンジニア同士だと、日本語だけではなくプログラミング言語でもやり取りするので、双方で都合の良い意味合いで話すことが多いのです
第2回 「抽出行をしぼる」
物事を調査するにはまず「観察」をする必要があります。 自分が欲しい情報だけを見る力を手に入れましょう
前回重要項目の復習
SQLってそもそもなんやねん
第3回 「抽出行をいっぱいしぼる」
SQL がどういった性質をもったモノなのか、前回でわかりました。
思い通りに「質問する力」を養うために WHERE
に続く言葉を知っていきましょう
以降は随時(週一くらい)更新