Ruby

小さなDB操作にピッタリっぽいDBを使ってみましょう。

参考データ

登録

#!/usr/bin/ruby -EUTF-8

require 'sqlite3'

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

sql = <<SQL
CREATE TABLE member_book2 (
  height integer,
  name text,
  game text
);
SQL

# テーブル生成
db.execute(sql)

# データ書き込み
sql = "insert into member_book2 values (?, ?, ?)"

db.execute(sql, 175, '篠塚弥生','WhiteAlbum')
db.execute(sql, 174, '宮内レミィ','ToHeart')
db.execute(sql, 172, '霧島聖','AIR')
db.execute(sql, 172, '椎名ゆうひ','とらいあんぐるハート2')
db.execute(sql, 171, 'ノエル・エーアリヒカイト')
db.execute(sql, 169, '遠野美凪','AIR')
db.execute(sql, 168, '神尾晴子','AIR')
db.execute(sql, 167, '川澄舞','Kanon')
db.execute(sql, 166, '深山雪見','ONE')
db.execute(sql, 165, '川名みさき','ONE')
db.execute(sql, 165, '緒方理奈','WhiteAlbum')
db.execute(sql, 165, '水瀬秋子','Kanon')
db.execute(sql, 164, '水瀬名雪','Kanon')
db.execute(sql, 164, '美坂香里','Kanon')
db.execute(sql, 164, '河島はるか','WhiteAlbum')
db.execute(sql, 163, 'セリオ','ToHeart')
db.execute(sql, 161, '七瀬留美','ONE')
db.execute(sql, 161, '保科智子','ToHeart')
db.execute(sql, 161, '来栖川綾香','ToHeart')
db.execute(sql, 161, '坂上智代','Clannad')
db.execute(sql, 160, '森川由綺','WhiteAlbum')
db.execute(sql, 160, '一ノ瀬ことみ','Clannad')
db.execute(sql, 160, '藤林杏','Clannad')
db.execute(sql, 159, '神尾観鈴','AIR')
db.execute(sql, 159, '長森瑞佳','ONE')
db.execute(sql, 159, '里村茜','ONE')
db.execute(sql, 159, '来栖川芹香','ToHeart')
db.execute(sql, 159, '沢渡真琴','Kanon')
db.execute(sql, 159, '天野美汐','Kanon')
db.execute(sql, 159, '倉田佐祐理','Kanon')
db.execute(sql, 158, '神岸あかり','ToHeart')
db.execute(sql, 158, '澤倉美咲','WhiteAlbum')
db.execute(sql, 157, '美坂栞','Kanon')
db.execute(sql, 156, '霧島佳乃','AIR')
db.execute(sql, 156, '姫川琴音','ToHeart')
db.execute(sql, 155, '雛山理緒','ToHeart')
db.execute(sql, 155, '古河渚','Clannad')
db.execute(sql, 154, '月宮あゆ','Kanon')
db.execute(sql, 153, '松原葵','ToHeart')
db.execute(sql, 152, '柚木詩子','ONE')
db.execute(sql, 150, '伊吹風子','Clannad')
db.execute(sql, 149, '椎名繭','ONE')
db.execute(sql, 149, '観月マナ','WhiteAlbum')
db.execute(sql, 147, 'マルチ','ToHeart')
db.execute(sql, 147, '上月澪','ONE')
db.execute(sql, 147, '仁村知佳','とらいあんぐるハート2')
db.execute(sql, 145, 'みちる','AIR')
db.execute(sql, 145, '里見こだま','それは舞い散る桜のように')
db.execute(sql, 144, '野々村小鳥','とらいあんぐるハート')
db.execute(sql, 142, '鳳蓮飛','とらいあんぐるハート3')
db.execute(sql, 135, '桜井小桃','初恋')
db.execute(sql, 133, 'イリヤスフィール・フォン・アインツベルン','Fate/stay night')
db.execute(sql, 131, '有間都古','MELTY BLOOD')
db.execute(sql, 129, '高町なのは','とらいあんぐるハート3')
db.execute(sql, 118, '陣内美緒','とらいあんぐるハート2')

db.close

追加用

新たにデータ追加できないと困るわよね。

だから、こんなものを作って見たわ。見ればわかるって感じね。

#!/usr/bin/ruby -EUTF-8

require 'sqlite3' 

class CNameLite3 < SQLite3::Database
  def getDatas
    r = []
    self.execute('select * from member_book2') do |row|
      r.push(row)
    end
    r
  end
  def checkDatas(s)
    r = false
    self.getDatas.each{|d|
      if s == d
      #if s[0] == d[0] && s[1] == d[1] && s[2] == d[2]
        r = true
        break
      end
    }
   r
 end
 def addData(s)
   sql = "insert into member_book2 values (?, ?, ?)"
   self.execute(sql, s[0], s[1], s[2])
 end
end

#db = SQLite3::Database.new("test.db")
db = CNameLite3.new("test.db")
# 試験用追加データ
adds = [ 163,"フェイト・テスタロッサ","魔法少女リリカルなのは"]
adds2 = [147, "マルチ", "ToHeart"]

p adds2
if db.checkDatas(adds2) != false
 print "そのデータは存在する\n"
else
 print "見つからなかった。\n"
 db.addData(adds2)
end
p adds
if db.checkDatas(adds) != false
 print "そのデータは存在する\n"
else
 print "見つからなかった。\n"
 db.addData(adds)
end

表示

#!/usr/bin/ruby -EUTF-8

=begin
  すちゃっとDBの中を吐き出してみよう。
=end

require 'sqlite3'

class CNameLite3 < SQLite3::Database
 def getDatas
   r = []
   self.execute('select * from member_book2') do |row|
     r.push(row)
   end
   r
 end
end

db = CNameLite3.new("test.db")

db.getDatas.each{|d|
 print <<EOM
名前:#{d[1]}    身長:#{d[0]}    作品:#{d[2]}
EOM
}

実行結果

$ ruby testdb3.rb

名前:篠塚弥生   身長:175        作品:WhiteAlbum
名前:宮内レミィ 身長:174        作品:ToHeart
名前:霧島聖     身長:172        作品:AIR
名前:椎名ゆうひ 身長:172        作品:とらいあんぐるハート2
名前:ノエル・エーアリヒカイト   身長:171        作品:
名前:遠野美凪   身長:169        作品:AIR
名前:神尾晴子   身長:168        作品:AIR
名前:川澄舞     身長:167        作品:Kanon
名前:深山雪見   身長:166        作品:ONE
名前:川名みさき 身長:165        作品:ONE
名前:緒方理奈   身長:165        作品:WhiteAlbum
名前:水瀬秋子   身長:165        作品:Kanon
名前:水瀬名雪   身長:164        作品:Kanon
名前:美坂香里   身長:164        作品:Kanon
名前:河島はるか 身長:164        作品:WhiteAlbum
名前:セリオ     身長:163        作品:ToHeart
名前:七瀬留美   身長:161        作品:ONE
名前:保科智子   身長:161        作品:ToHeart
名前:来栖川綾香 身長:161        作品:ToHeart
名前:坂上智代   身長:161        作品:Clannad
名前:森川由綺   身長:160        作品:WhiteAlbum
名前:一ノ瀬ことみ       身長:160        作品:Clannad
名前:藤林杏     身長:160        作品:Clannad
名前:神尾観鈴   身長:159        作品:AIR
名前:長森瑞佳   身長:159        作品:ONE
名前:里村茜     身長:159        作品:ONE
名前:来栖川芹香 身長:159        作品:ToHeart
名前:沢渡真琴   身長:159        作品:Kanon
名前:天野美汐   身長:159        作品:Kanon
名前:倉田佐祐理 身長:159        作品:Kanon
名前:神岸あかり 身長:158        作品:ToHeart
名前:澤倉美咲   身長:158        作品:WhiteAlbum
名前:美坂栞     身長:157        作品:Kanon
名前:霧島佳乃   身長:156        作品:AIR
名前:姫川琴音   身長:156        作品:ToHeart
名前:雛山理緒   身長:155        作品:ToHeart
名前:古河渚     身長:155        作品:Clannad
名前:月宮あゆ   身長:154        作品:Kanon
名前:松原葵     身長:153        作品:ToHeart
名前:柚木詩子   身長:152        作品:ONE
名前:伊吹風子   身長:150        作品:Clannad
名前:椎名繭     身長:149        作品:ONE
名前:観月マナ   身長:149        作品:WhiteAlbum
名前:マルチ     身長:147        作品:ToHeart
名前:上月澪     身長:147        作品:ONE
名前:仁村知佳   身長:147        作品:とらいあんぐるハート2
名前:みちる     身長:145        作品:AIR
名前:里見こだま 身長:145        作品:それは舞い散る桜のように
名前:野々村小鳥 身長:144        作品:とらいあんぐるハート
名前:鳳蓮飛     身長:142        作品:とらいあんぐるハート3
名前:桜井小桃   身長:135        作品:初恋
名前:イリヤスフィール・フォン・アインツベルン   身長:133        作品:Fate/stay  night
名前:有間都古   身長:131        作品:MELTY BLOOD
名前:高町なのは 身長:129        作品:とらいあんぐるハート3
名前:陣内美緒   身長:118        作品:とらいあんぐるハート2
名前:フェイト・テスタロッサ     身長:163        作品:魔法少女リリカルなのは

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-09-08 (木) 11:13:16