sqlite3は、railsでも採用されている、軽量・高速なSQL形式の一つです。
導入法はこちらの記事を参照してください。
今回、以下のコードでsqlite3の基本的な流れを確認してみました。
# -*- coding: utf-8 -*- require 'rubygems' require 'sqlite3' ##データベース読み込み db = SQLite3::Database.new("database.db") ##ファイルが無い場合、テーブルの作成 sql = <<SQL create table Person ( name varchar(10), age integer, post varchar(200) ); SQL db.execute(sql) puts "New file is created." #トランザクションによる値の挿入 db.transaction do sql = "insert into Person values (?, ?, ?)" db.execute(sql, '橋本', 26, '広報部') db.execute(sql, '小泉', 35, '営業部') db.execute(sql, '亀井', 40, '営業部') end #レコードを取得する db.execute('select * from Person') do |row| #rowは結果の配列 puts row.join("\t") end db.close
実行すると、以下のような結果が出力されるはずです。*1
User:~/rubyProject$ ruby sqltest.rb New file is created. 橋本 26 広報部 小泉 35 営業部 亀井 40 営業部
昔から、どうもデータベースというものが苦手でしたが、このライブラリだと簡単に使えそうな感じです。
バリバリ使いこなすには、やはりデータベースの記述形式("insert into Person values (?, ?, ?)"とか)は避けられない感じですが……。
参考元
*1:二度目を実行すると、:in `initialize': table Person already exists (SQLite3::SQLException) というエラーが出ます。Personを二重定義してしまうからです。今回は確認用なのでエラー処理をサボリました。すみません。