sqlite3を使う
python2.5以上はsqlite3がPythonに最初から入っている様子。
なので、sqliteをダウンロードする必要はなかった。
大体の役割
- Connection Objects
- コネクション取得
- カーソル取得
- コミット
- ロールバック
- Cursor Objects
- 実行と結果の取得(実行方法と結果取得方法はいくつか種類がある。)
- Row Objects
- ほぼタプルに似ていると書いてある
- カラム名をkeys()にて取得可能
- row[key]で値の取得も可能
# コネクションから直接実行する事もできるけどnonstandardらしい >>> import sqlite3 # DBコネクション取得 >>> conn = sqlite3.connect('hoge.db') >>> # SQLを実行(create) >>> conn.execute(''' create table stocks (date text, trans text, symbol text, qty real, price real) ''') # SQLを実行(insert) >>> for t in [('2006-03-28', 'BUY', 'IBM', 1000, 45.00), ('2006-04-05', 'BUY', 'MSOFT', 1000, 72.00), ('2006-04-06', 'SELL', 'IBM', 500, 53.00), ]: conn.execute('insert into stocks values (?,?,?,?,?)', t) # SQLを実行(select) >>> for x in conn.execute('select * from stocks'): print(x) ('2006-03-28', 'BUY', 'IBM', 1000.0, 45.0) ('2006-04-05', 'BUY', 'MSOFT', 1000.0, 72.0) ('2006-04-06', 'SELL', 'IBM', 500.0, 53.0) >>>
# カーソルから実行するのが一般的? >>> import sqlite3 >>> conn = sqlite3.connect('hoge.db') >>> cur = conn.cursor() >>> cur.execute('select * from stocks') <sqlite3.Cursor object at 0x01014500> >>> for row in cur: for col in row: print(col) 2006-03-28 BUY IBM 1000.0 45.0 ...