Upgrade to Pro — share decks privately, control downloads, hide ads and more …

前編 データベースと SQL を分かった気になる勉強会

前編 データベースと SQL を分かった気になる勉強会

配信動画はこちら
https://www.youtube.com/watch?v=SOF98V8fHRM

もし良かったらムーザルちゃんねるのチャンネル登録お願いします!
https://www.youtube.com/channel/UCLPHXwLp90A5R69Eltxo-sg

Twitter でもプログラミングネタをつぶやいているのでフォローお待ちしております。
ムー
https://twitter.com/mu_vpoe
zaru
https://twitter.com/zaru

mu_zaru

June 04, 2020
Tweet

More Decks by mu_zaru

Other Decks in Programming

Transcript

  1. データベースと SQL を分かった 気になる勉強会 YouTube Live (2020.6.4 Thur. 21:00~) CTO

    と VPoE が初学者向けに講義する オンライン勉強会です。 随時質問なども受け付けていますので、 お気軽にどうぞ。 ハッシュタグ #mu_zaru 前編
  2. 初学者向けです。JavaScript/PHP/Ruby などを使って Web 開発をしていきたい方向け。 Lv.2-3 をメイン対象としてます。 難易度? Lv.4 Lv.3 Lv.2

    Lv.1 HTML/CSS を触り始める 書籍、Progate、ドットインストールなどで JS/PHP/Ruby 入門 スクールに通いフレームワーク Laravel/Rails や DB/Git 入門 未経験から内定圏内 / エンジニア1年目 実務 1~2年 テストコード、リファクタ、設計、インフラ 中堅 以上 Lv.5 Lv.6
  3. エディタ触りながらではなく、 動画に集中してもらって大丈夫です。 YouTube 上でも、Twitter の メンションでも構いません。 質問にはできるだけ答えていきた いと思います。 質問OK ライブ配信の動画は、

    そのまま YouTube に公開します。 なので途中で抜けてもいいし、 生で見なくてもいいです。 動画公開 ソースコード公開 講義中に使うソースコードは全て GitHub に公開しています。 github.com/mu-zaru/mu-zaru-channel
  4. データベースってなに? 情報の集まり ユーザ 商品 ToDo 住所 記事 集まっている情報に対して、 検索・挿入・更新・削除する データベース

    管理システム いいねの数 情報の蓄積や操作を実現してくれるのが、データベース管理システム。 Web 系の世界では MySQL や PostgreSQL などがよく使われる。
  5. いろんな種類のDB 階層 カード リレーショナル ドキュメント グラフ KVS XML JSON Key

    Value Key Value 今回は、よく使われるリレーショナルタイプのデータベースについて SQL
  6. リレーショナルタイプ について ToDo No ToDo 完了 登録日時 ユーザ名 Email 1

    生放送する 完了 2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] データを複数の関係で表現した集合体、列と行で作られた表の関係
  7. ToDo No ToDo 完了 登録日時 ユーザ名 Email 1 生放送する 完了

    2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] 列 リレーショナルタイプ について
  8. ToDo No ToDo 完了 登録日時 ユーザ名 Email 1 生放送する 完了

    2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] 行 リレーショナルタイプ について
  9. ToDo No ToDo 完了 登録日時 ユーザ名 Email 1 生放送する 完了

    2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] 行 列 列(属性)と行(タプル)の組み合わせによって表現されている情報の 集合、この集合を表(テーブル)と呼ぶ。語弊を恐れず言えば Excel の ようなもの。 リレーショナルタイプ について
  10. 正規化 User No 名前 Email 1 zaru [email protected] 2 mu

    [email protected] ToDo No ToDo 完了 登録日時 User No 1 生放送する 完了 2020-05-31 1 2 コード書く 未完了 2020-06-01 1 3 絵を描く 未完了 2020-06-02 2 4 ご飯つくる 未完了 2020-06-04 1 「ToDo テーブル」と「 User テーブル」の2つに分割。 詳しくは次回
  11. SQL について リレーショナル リレーショナル DB の操作を 簡単にするための言語が SQL リレーショナル DB

    は色々なシステムがあるが、SQL という標準化され た(一応)言語を使って、同じような書き方でデータの操作をすること ができる。
  12. 簡単な SQL を使ってみる id task status created_at user_name Email 1

    生放送する 完了 2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] todo テーブル こんなテーブル があるとする まずは基本的な 検索/挿入/更新 をやってみましょう。
  13. データの検索 その1 id task status created_at user_name Email 1 生放送する

    完了 2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] SELECT 取得したい列名 FROM テーブル名; SELECT task, user_name FROM todo; task user_name 生放送する zaru コード書く zaru 絵を描く mu task と user_name の列を取得するこ とができました
  14. データの検索 その2 id task status created_at user_name Email 1 生放送する

    完了 2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] SELECT 取得したい列名 FROM テーブル名; SELECT * FROM todo; id task status created_at user_name Email 1 生放送する 完了 2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] ワイルドカード(*) を使うことで全て の列データを取得
  15. データの検索 その3 id task status created_at user_name Email 1 生放送する

    完了 2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] SELECT 取得したい列名 FROM テーブル名 WHERE 検索条件; SELECT task, user_name FROM todo WHERE user_name = “zaru”; task user_name 生放送する zaru コード書く zaru user_name が zaru のものを 抽出できました
  16. データの挿入 id task status created_at user_name Email 1 生放送する 完了

    2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] INSERT INTO テーブル名 VALUES ( “id”, “task”, ... ); INSERT INTO todo VALUES ( 4, “撮影”, “未完了”, “2020-06-05”, “zaru”, ... ); id task status created_at user_name Email 1 生放送する 完了 2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] 4 撮影 未完了 2020-06-05 zaru [email protected]
  17. データの更新 id task status created_at user_name Email 1 生放送する 完了

    2020-05-31 zaru [email protected] 2 コード書く 未完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] UPDATE テーブル名 SET 列名 = 新しい値 WHERE 条件; id task status created_at user_name Email 1 生放送する 完了 2020-05-31 zaru [email protected] 2 コード書く 完了 2020-06-01 zaru [email protected] 3 絵を描く 未完了 2020-06-02 mu [email protected] UPDATE todo SET status = “完了” WHERE id = 2;
  18. Fin