Ad

インストール anchor.png Edit

SQLite自体のインストールは他の資料を参照してください。 MacやLinux系のシステムだと標準で入っていることが多いです。

Pythonから使うAPIは標準ライブラリに入っているので、特にインストール作業は必要ありません。

面倒な設定などもいらないので、ローカルで動くようなプログラムのちょっとした開発ならSQLiteを使うのがおすすめです。

データベースの選び方についてはPython​/データベースの選択を参照のこと。

Page Top

データベースへの接続・更新 anchor.png Edit

プログラムからデータベースへ接続するのは一定のパターンがあり、ほとんどの言語で以下のような手順をふみます。

まず、データベースへの接続を行います。 その戻り値としてデータベースの情報を格納したオブジェクトを取得します。 一般にこのオブジェクトは「コネクタ」と呼ばれます。

次にそのコネクタからデータベースのどこのデータをあつかっているか、といった情報を扱うためのオブジェクトを取得します。 一般にこのオブジェクトは「カーソル」と呼ばれます。

SQLなどはカーソルを通じて発行され、書き込み終了のときのコミットやデータベースのクローズなどはコネクタを通じて実行されます。

この手順をふまえて、「test.db」という名前のファイルを開き(無ければ制作し)、testというテーブルが無ければ制作し、データを1件追加するには以下のようにします。

import sqlite3

conn = sqlite3.connect('test.db')

cursor = conn.cursor()

cursor.execute("CREATE TABLE IF NOT EXISTS test (id int,data txt )")

cursor.execute("INSERT INTO test VALUES (1,'This is test.')")

conn.commit()

conn.close()

以下のように変数を外に出すこともできます。またマルチバイト文字も利用できますが、その時にはUnicode型を使わないといけません。

cursor.execute(u"INSERT INTO test VALUES (?,?)",(2,u'これはテスト'))

こちらの方が特殊文字などをエスケープしてくれるので、SQLインジェクションなどに対しても安全です。

Page Top

データの参照 anchor.png Edit

データの参照は以下のようになります。

import sqlite3

conn = sqlite3.connect('test.db')

cursor = conn.cursor()

cursor.execute("SELECT * FROM test;")

for row in cursor:
    print row[0],row[1]

conn.close()

特に難しいところはないでしょう。


Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 672, today: 1, yesterday: 1
Princeps date: 2016-12-13 (Tue) 15:05:51
Last-modified: 2016-12-25 (Sun) 10:10:00 (JST) (848d) by njf
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失


NJF