- 差分 を表示
- ソース を表示
- Python/SQLiteから使う基礎 へ行く。
1: 2016-12-13 (火) 15:05:51 njf | 現: 2016-12-25 (日) 18:10:00 njf | ||
---|---|---|---|
Line 1: | Line 1: | ||
*インストール [#rd1fa2b7] | *インストール [#rd1fa2b7] | ||
+ | |||
+ | SQLite自体のインストールは他の資料を参照してください。 | ||
+ | MacやLinux系のシステムだと標準で入っていることが多いです。 | ||
+ | |||
+ | Pythonから使うAPIは標準ライブラリに入っているので、特にインストール作業は必要ありません。 | ||
+ | |||
+ | 面倒な設定などもいらないので、ローカルで動くようなプログラムのちょっとした開発ならSQLiteを使うのがおすすめです。 | ||
+ | |||
+ | データベースの選び方については[[Python/データベースの選択]]を参照のこと。 | ||
*データベースへの接続・更新 [#s190360f] | *データベースへの接続・更新 [#s190360f] | ||
+ | |||
+ | プログラムからデータベースへ接続するのは一定のパターンがあり、ほとんどの言語で以下のような手順をふみます。 | ||
+ | |||
+ | まず、データベースへの接続を行います。 | ||
+ | その戻り値としてデータベースの情報を格納したオブジェクトを取得します。 | ||
+ | 一般にこのオブジェクトは「コネクタ」と呼ばれます。 | ||
+ | |||
+ | 次にそのコネクタからデータベースのどこのデータをあつかっているか、といった情報を扱うためのオブジェクトを取得します。 | ||
+ | 一般にこのオブジェクトは「カーソル」と呼ばれます。 | ||
+ | |||
+ | 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インジェクションなどに対しても安全です。 | ||
*データの参照 [#h41eb251] | *データの参照 [#h41eb251] | ||
+ | |||
+ | データの参照は以下のようになります。 | ||
+ | |||
+ | 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() | ||
+ | |||
+ | 特に難しいところはないでしょう。 |
- Python/SQLiteから使う基礎 のバックアップ一覧
- Python/SQLiteから使う基礎 のバックアップの現在との差分(No. All)
- 1: 2016-12-13 (火) 15:05:51 njf
- 2: 2016-12-13 (火) 17:47:59 njf
ぺージ情報 | |
---|---|
ぺージ名 : | Python/SQLiteから使う基礎 |
ページ別名 : | 未設定 |
ページ作成 : | njf |
閲覧可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
編集可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
Counter: 1944,
today: 1,
yesterday: 0