Sequelのmodelの使い方(SQLite)
下記のページを参考にSequelの使い方を勉強する。
README.rdoc
Sequelのmodelの使い方
下記のようなクラスを作っていたことを前提とする。
require 'rubygems' require 'sequel' DB = Sequel.sqlite('test.db') # test.dbを作成し、接続 DB.create_table :items do primary_key :id String :name Float :price end items = DB[:items] items.insert(:name => 'abc', :price => 90) items.insert(:name => 'def', :price => 120) items.insert(:name => 'ghi', :price => 150)
クラス名をアクセスしたいテーブル名とし、Modelクラスを継承すると、簡単にテーブルにアクセスすることができるクラスを作成できる。
require 'rubygems' require 'sequel' DB = Sequel.connect('sqlite://test.db') # test.dbを作成し、接続 class Items < Sequel::Model end #データベース名を表示 puts Items.table_name #データの一覧を表示 print Items.all #改行 puts #プリマリキーが1のデータのnameを表示 puts Items[1].name
データの追加にはinsert、更新にはupdate、削除にはdeleteを使用する。
require 'rubygems' require 'sequel' DB = Sequel.connect('sqlite://test.db') # test.dbを作成し、接続 class Items < Sequel::Model end #データベース名を表示 puts Items.table_name #データの一覧を表示 print Items.all puts #データを追加 Items.insert(:name => 'jkl', :price => 180) #データの一覧を表示 print Items.all puts #データを更新 Items.filter(:name => 'jkl').update(:price => 200) #データの一覧を表示 print Items.all puts #データを削除 Items.filter(:name => 'jkl').delete #データの一覧を表示 print Items.all
色々な絞り込みを試してみる。
require 'rubygems' require 'sequel' DB = Sequel.connect('sqlite://test.db') # test.dbを作成し、接続 class Items < Sequel::Model end #データの一覧を表示 print Items.all puts #nameがabcのレコードを表示 print Items.filter(:name => "abc").all puts #nameがabcのレコードのpriceを表示 print Items.filter(:name => "abc").get(:price) puts #nameがabcのレコードのpriceを表示 print Items.filter(:name => ['abc', 'def']).all puts #priceが100より大きいレコードを表示 print Items.filter('price > 100').all