2: 2016-12-13 (火) 17:47:59 njf |
現: 2016-12-25 (日) 18:10:00 njf |
| *データベースへの接続・更新 [#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() |
| | | |
| | | |
| 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() |
| | | |
| 特に難しいところはないでしょう。 | | 特に難しいところはないでしょう。 |