Top / Programming / Ruby / Ruby ソスfソス[ソス^ソスxソス[ソスXソスソスソスCソスuソスソスソスソス / SQLite/Ruby

SQLite/Ruby

ソスyソスハ・ソスソスソスソスソスネデソス[ソス^ソスxソス[ソスXSQLiteソスソスRubyソスソスソス辷オソスソスソスソスソス゚のソスソスCソスuソスソスソスソスソスB

ソスCソスソスソスXソスgソス[ソスソス

Windowsソスフ場合

  1. RubyForgeソスソスソスソスA sqlite3-ruby(sqlite3-ruby-x.x.x.zip)ソスソスソス_ソスEソスソスソスソスソス[ソスhソスソスソスソスB

  2. ソス_ソスEソスソスソスソスソス[ソスhソスソスソスソスソスtソス@ソスCソスソスソスソスWソスJソスソスソスソスB

  3. ソスCソスソスソスXソスgソス[ソスソスソスvソスソスソスOソスソスソスソスソスソスソスソスソスsソスソスソスソスB

    ruby setup.rb config
    ruby setup.rb setup
    ruby setup.rb install
    

RubyGemsソスソスソスgソスソスソス鼾

RubyGemsソスソスソスCソスソスソスXソスgソス[ソスソスソスソスソスソスソスソスA ソスソスソスフコソス}ソスソスソスhソスソスソスソスソスsソスソスソスソスB

gem install sqlite3-ruby

SQLiteソスフイソスソスソスXソスgソス[ソスソス

  1. SQLite Download PageソスソスソスソスA sqlitedll-3_x_x.zipソスソスソス_ソスEソスソスソスソスソス[ソスhソスソスソスソスB

  2. ソス_ソスEソスソスソスソスソス[ソスhソスソスソスソスソスtソス@ソスCソスソスソスソスWソスJソスソスソスソスB

  3. sqlite.dllソスソスソスpソスXソスフ通ゑソスソスソスソスfソスBソスソスソスNソスgソスソスソスノコソスsソス[ソスソスソスソスB

ソスgソスpソスソスソス@

sqliteソスソスソスソスソス[ソスhソスソスソスソス

require 'sqlite3'

ソスfソス[ソス^ソスxソス[ソスXソスソスソス成ソスソスソスソス

db = SQLite3::Database.new("data.db")

ソスfソス[ソス^ソスxソス[ソスXソスソスツゑソスソスソス

db.close

ソスeソス[ソスuソスソスソスソスソス成ソスソスソスソス

Stringソス^ソスフ「ソスソスソスソスソスvソスtソスBソス[ソスソスソスhソスA Integerソス^ソスフ「ソスNソスソスvソスtソスBソス[ソスソスソスhソスA Stringソス^ソスフ「ソスソスソスソスソスvソスtソスBソス[ソスソスソスhソスA ソスソスソスソスソスツ「ソスミ茨ソスソスvソスeソス[ソスuソスソスソスソスソス成ソスソスソスソスB

sql = <<SQL
create table ソスミ茨ソス (
  ソスソスソスO varchar(10),
  ソスNソスソス integer,
  ソスソスソスソス varchar(200)
);
SQL
db.execute(sql)

ソスgソスpソスナゑソスソスソスfソス[ソス^ソス^

ソスソスソスRソス[ソスhソスソスoソス^ソスソスソスソス

ソスソスソスRソス[ソスhソスソスoソス^ソスソスソスソス

sql = "insert into ソスミ茨ソス values ('ソスソスソス{', 26, 'ソスLソスソス')"
db.execute(sql)

ソスvソスソスソス[ソスXソスzソスソスソス_ソスニバソスCソスソスソスhソスlソスソスソスgソスpソスソスソスソスソス鼾

sql = "insert into ソスミ茨ソス values (?, ?, ?)"
db.execute(sql, 'ソスソスソスソス', 35, 'ソスcソスニ包ソス')
db.execute(sql, 'ソスTソスソス', 40, 'ソスcソスニ包ソス')

ソスソスソスOソスtソスソスソスvソスソスソス[ソスXソスzソスソスソス_ソスソスソスgソスpソスツ能

sql = "insert into ソスミ茨ソス values (:name, :age, :post)"
db.execute(sql, :name => 'ソスソスソスソス', :age => 35, :post => 'ソスcソスニ包ソス')
db.execute(sql, :name => 'ソスTソスソス', :age => 40, :post => 'ソスcソスニ包ソス')

ソスソスソスRソス[ソスhソスソスソス謫セソスソスソスソス

ソスソスソスRソス[ソスhソスソスソス謫セソスソスソスソス

db.execute('select * from ソスミ茨ソス') do |row|
  #rowソスヘ鯉ソスソスハの配ソスソス
  puts row.join("\t")
end

ソスソスソスソス

ソスソスソス{    26  ソスLソスソス
ソスソスソスソス    35  ソスcソスニ包ソス
ソスTソスソス    40  ソスcソスニ包ソス

ソスvソスソスソス[ソスXソスzソスソスソス_ソスニバソスCソスソスソスhソスlソスソスソスgソスpソスソスソスソスソス鼾

db.execute('select * from ソスミ茨ソス where ソスNソスソス=?', 40) do |row|
  #rowソスヘ鯉ソスソスハの配ソスソス
  puts row.join("\t")
end

ソスソスソスソス

ソスTソスソス    40  ソスcソスニ包ソス

ソス名とソスソスRソス[ソスhソスソスソス謫セソスソスソスソス

db.execute2('select * from ソスミ茨ソス') do |row| 
  #rowソスヘ鯉ソスソスハの配ソスソスBソスソスソスソスソスソスソスナ擾ソスソスフソスソスRソス[ソスhソスヘ列名。
  puts row.join("\t")
end

ソスソスソスソス

ソスソスソスO    ソスNソスソス    ソスソスソスソス
ソスソスソス{    26  ソスLソスソス
ソスソスソスソス    35  ソスcソスニ包ソス
ソスTソスソス    40  ソスcソスニ包ソス

ソス名とソスソスRソス[ソスhソスソスハ々ソスノ取得ソスソスソスソスソスソスソス鼾

# columnsソスノ列名、rowsソスノソスソスRソス[ソスhソスソスソスソスソスソス
columns, *rows = db.execute2('select * from ソスミ茨ソス')

ResultSetソスソスソス謫セソスソスソスソス

result = db.query('select * from ソスミ茨ソス')
result.each do |row|
  puts row.join("\t")
end

ソスソスソスソス

ソスソスソス{    26  ソスLソスソス
ソスソスソスソス    35  ソスcソスニ包ソス
ソスTソスソス    40  ソスcソスニ包ソス

ソスナ擾ソスソスフソスソスRソス[ソスhソスソスソス謫セソスソスソスソス

result = db.get_first_row('select * from ソスミ茨ソス')
puts result.join("\t")

ソスソスソスソス

ソスソスソス{    26  ソスLソスソス

ソスナ擾ソスソスフソスソスRソス[ソスhソスフ最擾ソスソスフ値ソスソスソス謫セソスソスソスソス

count = db.get_first_value('select count(*) from ソスミ茨ソス')
puts count

ソスソスソスソス

3

ソスソスソスRソス[ソスhソスソスソスXソスVソスソスソスソス

#ソスソスソスソスフ包ソスソスソスソスソスソスLソス部に更ソスVソスソスソスソス
db.execute("update ソスミ茨ソス set ソスソスソスソス='ソスLソスソス' where ソスソスソスO='ソスソスソスソス'")

ソスソスソスRソス[ソスhソスソスソス除ソスソスソスソス

# ソスTソスソスソスソス除
db.execute("delete from ソスミ茨ソス where ソスソスソスO='ソスTソスソス'")

ソスgソスソスソスソスソスUソスNソスVソスソスソスソス

ソスuソスソスソスbソスNソスソス^ソスソスソスソスソス鼾ソスAソスIソスソスソスソスソスソスソスソスソス_ソスナコソス~ソスbソスgソスソスソスソスB

db.transaction do
  sql = "insert into ソスミ茨ソス values (?, ?, ?)"
  db.execute(sql, 'ソスソスソス{', 26, 'ソスLソスソス')
  db.execute(sql, 'ソスソスソスソス', 35, 'ソスcソスニ包ソス')
  db.execute(sql, 'ソスTソスソス', 40, 'ソスcソスニ包ソス')
end

ソスuソスソスソスbソスNソスソス^ソスソスソスネゑソスソス鼾ソスAソスソスソスソスソスIソスノコソス~ソスbソスgソスワゑソスソスヘソスソス[ソスソスソスoソスbソスNソスソスソスsソスソスソスB

db.transaction
begin
  db.execute('delete from ソスミ茨ソス')
  db.commit
rescue
  db.rollback
end

ソスXソスVソスソスソスソス