Pythonで簡単にデータベースを扱うことができるライブラリ(ORマッパー)
pip install dataset
import dataset
接続:db = connect(接続先)
テーブル取得:db[テーブル名]
db = dataset.connect('sqlite:///ファイル名')
db = dataset.connect('sqlite:///hanbai.db') table = db['shouhin']
db = dataset.connect('mysql://ユーザ名:@localhost/データベース名?charset=utf8')
db = dataset.connect('mysql://root:@localhost/hanbai?charset=utf8') table = db['shouhin']
テーブルのfindメソッド。引数に条件を書く。戻り値は列名の辞書の形で行が返される。
results = table.find() for record in results: print(record['sid'],record['sname'],record['tanka'])
# sname が りんご results = table.find(sname='りんご') # tankaが150より大きい results = table.find(tanka={'>': 150}) # snameに「ん」が付く results = table.find(sname={'like':'%ん%'})
findメソッドの引数に order_by で列名を指定する。
降順の場合には列名の前に - を付ける。
複数キーの場合、リストで指定。
# tankaの昇順 results = table.find( order_by='tanka') # tankaの降順 results = table.find( order_by='-tanka') # tankaの昇順、同じ場合、sidの降順 results = table.find( order_by=['tanka','-sid'])
findメソッドの引数に _limit で行数を指定する。
# 3行だけ表示 results = table.find( _limit=3 )
findメソッドの引数に _offset で開始位置の指定も可能。
# 3行目から3行だけ表示 results = table.find( _limit=3, _offset=3 )
import dataset db = dataset.connect('sqlite:///hanbai.db') table = db['shouhin'] results = table.find() for record in results: print(record['sid'],record['sname'],record['tanka'])
結果が1行のみの場合にはfind_oneメソッドで引数に条件を指定する。
record = table.find_one(sid=1) print(record['sname'])
テーブルのinsertメソッド。引数に辞書で行を指定。
data = {'sname':'にんじん', 'tanka':120} table.insert(data)
テーブルのupdateメソッド。引数に辞書で行を指定。第二引数にキーの列名をリストで指定。
data = {'sid':5,'sname':'かき', 'tanka':120} table.update(data,['sid'])
テーブルのupdateメソッド。引数にキーを指定。
table.delete(sid=5)
データベースのqueryメソッドでSQLを指定する。
results = db.query('SELECT sid,SUM(kosu) FROM uriage GROUP BY sid') for record in results: print(record['sid'],record['SUM(kosu)'])