『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")
- require 'mysql2'
※ 上記の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文を記述するのではなく、
直接その言語でデータベースを操作する方法を次のレッスンでは学ぶようだ。
※コメント投稿者のブログIDはブログ作成者のみに通知されます