SQLiteはお手軽なデータベースです。
特に何の準備も不用で「python」があれば利用できます。
例)
import sqlite3
import os
dir = os.path.dirname(__file__)
db_path = os.path.join( dir, 'hoge.sqlite' ) ※拡張子 sqlite となる DB を定義する
con = sqlite3.connect(db_path) ※ファイルはなくても、この時点で作られます
cur = con.cursor() ※操作するためのカーソルを取得
cur.executescript(""" ※DDL 等を処理する場合は executescript メソッドを使う
/* 既に items テーブルがあれば削除する */
drop table if exists items;
/* テーブルの作成 */
create table items(
item_id integer primary key,
name text unique,
price integer
);
/* データを投入 */
insert into items (name, price) values ('ケーキ', 600);
insert into items (name, price) values ('プリン', 300);
insert into items (name, price) values ('紅茶', 230);
""")
con.commit() ※コミットすると永続化されます
cur.execute("select * from items where price > 250") ※CURD 関連は execute メソッドを使う
item_list = cur.fetchall() ※fetchall() でレコード単位でタプル型となる
for row in item_list:
print(row)
print('------------------------------------')
cur.execute("insert into items (name, price) values (?, ?)", ('コーヒー', 180)) ※単独の登録
con.commit()
cur.execute("select * from items where price < 500")
item_list = cur.fetchall()
for row in item_list:
print(row)
print('------------------------------------')
data = [('パン', 120),('アイス', 220)]
※複数の登録をする場合は executemany メソッドを使う
cur.executemany("insert into items (name, price) values (?, ?)", data)
con.commit()
condition = (2, 200)
cur.execute("select * from items where item_id > ? and price < ?", condition)
item_list = cur.fetchall()
for row in item_list:
print(row)