[[Ruby]]
小さなDB操作にピッタリっぽいDBを使ってみましょう。
* 参考データ [#e0f4adf5]
- http://www.gesource.jp/programming/ruby/database/sqlite.html
* 登録 [#bb911dd6]
#!/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
* 追加用 [#oae2af37]
新たにデータ追加できないと困るわよね。
だから、こんなものを作って見たわ。見ればわかるって感じね。
#!/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
* 表示 [#gfdf398d]
#!/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
}
** 実行結果 [#fce2bbed]
$ 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 作品:魔法少女リリカルなのは