2: 2016-12-13 (火) 17:47:59 njf[4] [5] [6] | 現: 2016-12-25 (日) 18:10:00 njf[4] [7] [8] | ||
---|---|---|---|
Line 12: | Line 12: | ||
*データベースへの接続・更新 [#s190360f] | *データベースへの接続・更新 [#s190360f] | ||
- | 「test.db」という名前のファイルを開き(無ければ制作し)、testというテーブルが無ければ制作し、データを1件追加するには以下のようにします。 | + | プログラムからデータベースへ接続するのは一定のパターンがあり、ほとんどの言語で以下のような手順をふみます。 |
+ | |||
+ | まず、データベースへの接続を行います。 | ||
+ | その戻り値としてデータベースの情報を格納したオブジェクトを取得します。 | ||
+ | 一般にこのオブジェクトは「コネクタ」と呼ばれます。 | ||
+ | |||
+ | 次にそのコネクタからデータベースのどこのデータをあつかっているか、といった情報を扱うためのオブジェクトを取得します。 | ||
+ | 一般にこのオブジェクトは「カーソル」と呼ばれます。 | ||
+ | |||
+ | SQLなどはカーソルを通じて発行され、書き込み終了のときのコミットやデータベースのクローズなどはコネクタを通じて実行されます。 | ||
+ | |||
+ | この手順をふまえて、「test.db」という名前のファイルを開き(無ければ制作し)、testというテーブルが無ければ制作し、データを1件追加するには以下のようにします。 | ||
import sqlite3 | import sqlite3 | ||
+ | |||
conn = sqlite3.connect('test.db') | conn = sqlite3.connect('test.db') | ||
+ | |||
cursor = conn.cursor() | cursor = conn.cursor() | ||
+ | |||
cursor.execute("CREATE TABLE IF NOT EXISTS test (id int,data txt )") | cursor.execute("CREATE TABLE IF NOT EXISTS test (id int,data txt )") | ||
+ | |||
cursor.execute("INSERT INTO test VALUES (1,'This is test.')") | cursor.execute("INSERT INTO test VALUES (1,'This is test.')") | ||
+ | |||
conn.commit() | conn.commit() | ||
+ | |||
conn.close() | conn.close() | ||
Line 38: | Line 49: | ||
import sqlite3 | import sqlite3 | ||
+ | |||
conn = sqlite3.connect('test.db') | conn = sqlite3.connect('test.db') | ||
+ | |||
cursor = conn.cursor() | cursor = conn.cursor() | ||
+ | |||
cursor.execute("SELECT * FROM test;") | cursor.execute("SELECT * FROM test;") | ||
+ | |||
for row in cursor: | for row in cursor: | ||
print row[0],row[1] | print row[0],row[1] | ||
+ | |||
conn.close() | conn.close() | ||
特に難しいところはないでしょう。 | 特に難しいところはないでしょう。 |
(This host) = https://njf.jp