sqlite3を使う

python2.5以上はsqlite3がPythonに最初から入っている様子。
なので、sqliteをダウンロードする必要はなかった。


大体の役割

  1. Connection Objects
    1. コネクション取得
    2. カーソル取得
    3. コミット
    4. ロールバック
  2. Cursor Objects
    1. 実行と結果の取得(実行方法と結果取得方法はいくつか種類がある。)
  3. Row Objects
    1. ほぼタプルに似ていると書いてある
    2. カラム名をkeys()にて取得可能
    3. 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
...