Top / Programming / Ruby / Ruby データベースライブラリ / Ruby/MySQL

Ruby/MySQL

RubyでMySQLを使用するには、2つのライブラリがあります。

インターフェースに互換性があります。

Ruby/MySQLのインストール

ダウンロードしたファイルを展開し、install.rb を実行します。

# ruby install.rb

mysql.rbを手動でコピーしてインストールすることもできます。

使用方法

mysq.rbをロードする

require 'mysql'

データベースに接続する

#db = Mysql::new("host", "user", "passwd", "db")
db = Mysql::new("localhost", "user", "passwd", "db")

データベースを作成する

db.create_db("test_db")

データベースを閉じる

db.close

テーブルを作成する

String型の「name」フィールド、 Integer型の「age」フィールド、 String型の「post」フィールド、を持つ「staff」テーブルを作成する。

sql = <<SQL
create table staff (
  name varchar(10),
  age integer,
  post varchar(200)
)
SQL
db.query(sql)

レコードを登録する

db.query("insert into staff values ('橋本', 26, '広報部')")

レコードを取得する

レコードを配列で取得する

res = db.query('select * from staff')
res.each do |row|
  #rowは結果の配列
  puts row.join("\t")
end

結果

橋本    26  広報部
小泉    35  営業部
亀井    40  営業部

レコードをHashで取得する

res = db.query('select * from staff')
res.each_hash do |row|
  #rowは結果のHash
  p row
end

結果

{"name"=>"橋本", "post"=>"広報部", "age"=>"26"}
{"name"=>"小泉", "post"=>"営業部", "age"=>"35"}
{"name"=>"亀井", "post"=>"営業部", "age"=>"40"}

レコードを更新する

#小泉のpostを広報部に更新する
db.query("update staff set post='広報部' where name='小泉'")

レコードを削除する

# 亀井を削除
db.query("delete from 社員 where 名前='亀井'")

AUTO_INCREMENT 項目の値を取得する

最後に生成された AUTO_INCREMENT 項目の値を取得する

db.insert_id

更新履歴