Python for Android

SQLite

このエントリーをはてなブックマークに追加
最終更新日 2012-12-02

SQLite はサーバではなくライブラリとして実装される軽量のデータベースです。 次に示すのは、Python for Android の sqlite3 モジュールで SQLite を利用する例です。

import sqlite3
con = sqlite3.connect("/mnt/sdcard/sampledb")
con.isolation_level = None
cur = con.cursor()
cur.execute("CREATE TABLE sample (id INTEGER, name TEXT)")
cur.close()
con.close()

まず、connect() を呼び出してデータベースに接続します。 今回の例では /mnt/sdcard/sampledb にデータベースを作成します。 次に、isolation_level を None に設定して自動コミットモードを有効にします。 最後に、cursor() を呼び出してカーソルオブジェクトを取得し、 execute() で CREATE TABLE 文を実行してテーブルを作成します。

次に示すのは、レコードを追加する例です。

import sqlite3
con = sqlite3.connect("/mnt/sdcard/sampledb")
con.isolation_level = None
cur = con.cursor()
cur.execute("INSERT INTO sample (id, name) VALUES (1, 'Cupcake')")
cur.execute("INSERT INTO sample (id, name) VALUES (2, 'Donut')")
cur.execute("INSERT INTO sample (id, name) VALUES (3, 'Eclair')")
cur.close()
con.close()

次に示すのは、レコードを更新する例です。今回の例ではプレースホルダを使用します。

import sqlite3
con = sqlite3.connect("/mnt/sdcard/sampledb")
con.isolation_level = None
cur = con.cursor()
cur.execute("UPDATE sample SET name=? WHERE id=?", ("Froyo", "2"))
cur.close()
con.close()

次に示すのは、レコードを削除する例です。

import sqlite3
con = sqlite3.connect("/mnt/sdcard/sampledb")
con.isolation_level = None
cur = con.cursor()
cur.execute("DELETE FROM sample WHERE id=3")
cur.close()
con.close()

次に示すのは、レコードを参照する例です。name 値を一覧表示します。

import sqlite3
con = sqlite3.connect("/mnt/sdcard/sampledb")
con.isolation_level = None
cur = con.cursor()
cur.execute("SELECT name FROM sample ORDER BY id")
for i in cur:
    print i[0]
cur.close()
con.close()

なお、sqlite3.connect(":memory:") とすると、ファイルではなくメモリ上にデータベースを作成します。