SQLiteをPythonで

30分プログラム、その213。前々から気になっていたSQLitePythonで使ってみる。
Python2.5からsqlite3モジュールが標準添付されたらしいけれど、MacPortsだと別途py25-sqlite3をインストールする必要があった。sqlite3モジュールは存在するけど、importすると例外を吐く。

SQL文が使えつつ、SQLサーバがいらないのはありがたい。特にレンタルサーバなどで動かす場合には。

インストール方法

$ sudo port install sqlite3
$ sudo port install py25-sqlite3

ソースコード

#! /usr/bin/python
# -*- mode:python; coding:utf-8 -*-
#
# sqlite.py -
#
# Copyright(C) 2008 by mzp
# Author: MIZUNO Hiroki / mzpppp at gmail dot com
# http://howdyworld.org
#
# Timestamp: 2008/01/02 22:04:20
#
# This program is free software; you can redistribute it and/or
# modify it under MIT Lincence.
#

import sqlite3

# メモリ上に保存するようにする。
# connect = sqlite3.connect('/tmp/db')なども可能。
connect = sqlite3.connect(':memory:')

# テーブルの作成
c = connect.cursor()
c.execute('CREATE TABLE users (id INTEGER PRIMARY KEY,name TEXT)')

# データの挿入
c.execute('INSERT INTO users VALUES (1,"bar")')
c.execute('INSERT INTO users VALUES (0,"foo")')
c.execute('INSERT INTO users VALUES (2,?)',('baz',))
c.execute('INSERT INTO users VALUES (3,?)',(') DELETE FROM users --',)) # SQL inject?

# データを表示する
for user in c.execute('SELECT * FROM users ORDER BY id'):
    print user

# データの削除
c.execute('DELETE FROM users WHERE id=0')