不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

paizaラーニング『Webアプリ開発入門 Sinatra編3:Rubyでデータベースの基本を理解しよう (全8回)』を受講してみた

2021-03-15 23:34:35 | paiza

『Webアプリ開発入門 Sinatra編3:Rubyでデータベースの基本を理解しよう (全8回)』


どうやらこのレッスンを自分の環境で試すには、
RubyでMySQLにアクセスするためのライブラリmysql2をインストールする必要があるっぽい。
$sudo gem install mysql2

さらに自分の環境の場合、Mysql2::Client.new()関数の引数に:passwordも渡す必要があった。

メモ

#01:Rubyでデータベースに接続しよう

  • 以前作成したmydbを使用(phpMyAdminで確認)
  • RubyでSQL文を実行するコード (sql.rb)
    • require 'mysql2'
      client = Mysql2::Client.new(:host => "localhost", :username => "root",  :password => "XXXX", :database => "mydb")
※ 上記のmysql2ライブラリのインストールとデータベースのパスワードを引数に与える必要がある。

#02:Sinatraで、データベースからデータを表示しよう

  • Sinatraでデータベースに接続する(sql.rb)
  • テンプレートファイル(views/index.erb)の作成
※あぁ〜、駄目だ〜😵 眠い〜😴 今日のところはここまでとしよう😓 

#03:Rubyでデータベースを使ってみよう1

  • SQL文の例
    • # 全てのデータを取り出す
      SELECT * FROM players;
    • # 一部のカラムだけ取得する
      SELECT name, level FROM players;
    • # 一部の行だけ取得する
      SELECT * FROM players WHERE level >= 7;
    • # 複数の条件を組み合わせる
      SELECT * FROM players WHERE level >= 7 AND job_id <> 6;
    • #条件指定とカラム選択を組み合わせる
      SELECT name, level FROM players WHERE level >= 7;
  • 変数で条件を指定する
    • SQL文中で、変数で条件を指定したいところに?を記述
    • *.execute(値あるいは変数):引数で値あるいは変数を指定する

#04:Rubyでデータベースを使ってみよう2

  • SQL文の例
    • # データを追加する
      INSERT INTO players(id, name,level,job_id) VALUES(11, '霧島1号', 1, 1)
    • # データを更新する
      UPDATE players SET level = 10 WHERE id = 11
    • # データを更新する。1増加
      UPDATE players SET level = level + 1 WHERE id = 12
    • # データを削除する
      DELETE FROM players WHERE id = 13
    • # 複数のデータを削除する
      DELETE FROM players WHERE id >= 11
※ 上記のINSERT文の場合、idも同時に設定してやらないと、デフォルトのid値はないって怒られるから、ちゃんと設定する必要がある。

#05:Rubyでテーブルを連結してデータを取り出す

  • SQL文の例
    • # テーブルを結合して表示する(左結合)
      SELECT * FROM players LEFT JOIN jobs ON jobs.id = players.job_id
    • # テーブルを結合して表示する(右結合)
      SELECT * FROM players RIGHT JOIN jobs ON jobs.id = players.job_id

#06:データをtableタグで表示する

  • テーブルを連結して、テーブルタグで表示する
    • sql.rbのSQL文の修正
    • views/index.erbにtableタグを追加

#07:特定のプレイヤーを表示する

  • sql.rbをplayers_index.rbに改名して編集
    • get '/show/:id' do

#08:特定のプレイヤーの詳細画面を作る

  • players_index.rbを編集
  • views/profile.erb テンプレートの作成

認定証

他の言語のWebフレームワークでもそうだったけど、
やっぱりSQL文を記述するのではなく、
直接その言語でデータベースを操作する方法を次のレッスンでは学ぶようだ。


学習ステータス





最新の画像もっと見る

コメントを投稿