SQLiteは組み込みデータベースであり、そのデータベースはファイルです。 SQLite自体はCで記述されており、サイズが小さいため、iOSやAndroidのアプリであっても、さまざまなアプリケーションに統合されることがよくあります。 PythonにはSQLite3が組み込まれているため、PythonでSQLiteを使用する場合は、何もインストールして直接使用する必要はありません。
SQLiteを使用する前に、まずいくつかの概念を理解する必要があります。
テーブルは、データベースに格納されているリレーショナルデータのコレクションです。データベースには通常、学生テーブル、クラステーブル、学校テーブルなどの複数のテーブルが含まれています。テーブルとテーブルは外部キーによって関連付けられています。
リレーショナルデータベースを操作するには、最初にデータベースに接続する必要があります。データベース接続は接続と呼ばれます。
データベースに接続した後、カーソルを開いてCursorと呼び、Cursorを介してSQLステートメントを実行し、実行結果を取得する必要があります。
Pythonは、データベースを操作するためのAPIインターフェイスのセットを定義します。任意のデータベースをPythonに接続するには、Python標準に準拠するデータベースドライバーを提供するだけで済みます。
SQLiteドライバーはPython標準ライブラリに組み込まれているため、SQLiteデータベースを直接操作できます。
Pythonインタラクティブコマンドラインで練習してみましょう。
# SQLiteドライバーをインポートする:import sqlite3
# SQLiteデータベースに接続します
# データベースファイルはテスト中です.db
# ファイルが存在しない場合は、現在のディレクトリに自動的に作成されます:
conn = sqlite3.connect('test.db')
# カーソルを作成する:
cursor = conn.cursor()
# SQLステートメントを実行してユーザーテーブルを作成します:
cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')<sqlite3.cursor object="" at=""0x10f8aa260=""
# SQLステートメントの実行を続行し、レコードを挿入します:
cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')
# rowcountを通じて挿入された行数を取得します:
cursor.rowcount
1
# カーソルを閉じる:
cursor.close()
# トランザクションをコミットする:
conn.commit()
# 接続を閉じる:
conn.close()</sqlite3.cursor </sqlite3.cursor
レコードのクエリをもう一度試してみましょう。
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
# クエリを実行する:
cursor.execute('select * from user where id=?','1')<sqlite3.cursor object="" at=""0x10f8aa340=""
# クエリ結果セットを取得する:
values = cursor.fetchall()
values
[( u'1', u'Michael')]
cursor.close()
conn.close()</sqlite3.cursor
PythonのDB-APIを使用する場合、ConnectionオブジェクトとCursorオブジェクトを理解している限り、それらを開いた後に必ず閉じてください。そうすれば、自信を持って使用できます。
Cursorオブジェクトを使用して挿入、更新、および削除ステートメントを実行する場合、実行結果はrowcountによって影響を受ける行数に返され、実行結果を取得できます。
Cursorオブジェクトを使用してselectステートメントを実行する場合、結果セットはfeatchall()を介して取得できます。結果セットはリストであり、各要素はレコードの行に対応するタプルです。
SQLステートメントにパラメーターがある場合は、位置に応じてパラメーターをexecute()メソッドに渡す必要があります。プレースホルダーの数は、次のようにいくつかのパラメーターに対応する必要があります。
cursor.execute('select * from user where id=?','1')
SQLiteは、一般的な標準SQLステートメントといくつかの一般的なデータタイプをサポートします。具体的なドキュメントについては、SQLiteの公式Webサイトを参照してください。
概要
Pythonでデータベースを操作する場合は、最初にデータベースに対応するドライバーをインポートしてから、ConnectionオブジェクトとCursorオブジェクトを介してデータを操作する必要があります。
開いているConnectionオブジェクトとCursorオブジェクトが適切に閉じられていることを確認するために、そうでない場合、リソースがリークされます。
エラーが発生した場合に、ConnectionオブジェクトとCursorオブジェクトも確実に閉じるにはどうすればよいですか? try:…except:…finally:…の使用を思い出してください。
ナレッジポイントの拡張
SQLite3の概要
SQLite3は、sqlite3モジュールを使用してPythonと統合できます。 sqlite3モジュールはGerhardHaringによって作成されました。これは、PEP249で説明されているDB-API2.0仕様と互換性のあるSQLインターフェイスを提供します。 Python 2.5.x以降にはデフォルトでこのモジュールがあるため、このモジュールを個別にインストールする必要はありません。
sqlite3モジュールを使用するには、最初にデータベースを表す接続オブジェクトを作成する必要があります。次に、オプションでカーソルオブジェクトを作成できます。これは、すべてのSQLステートメントの実行に役立ちます。
いいですね!それから来て、それを使うことを学びなさい。
データベースに接続する
次のPythonコードは、既存のデータベースに接続する方法を示しています。データベースが存在しない場合は作成され、最後にデータベースオブジェクトが返されます。
#- *- coding:utf-8-*-import sqlite3
conn = sqlite3.connect('mysql_person.db')
print "Opened database successfully";
ここで、データベース名を特定の名前にコピーすることもできます:memory :。これにより、RAMにデータベースが作成されます。ここで、上記のプログラムを実行して、現在のディレクトリにデータベースmysql_person.dbを作成しましょう。必要に応じてパスを変更できます。上記のコードをsqlite.pyファイルに保存し、以下に示すように実行します。データベースが正常に作成されると、以下のメッセージが表示されます。
$chmod +x sqlite.py
$./sqlite.py
Open database successfully
これで、PythonでSQLiteを使用する方法に関するこの記事は終わりです。PythonでSQLiteを使用するより簡単なアプリケーションについては、ZaLou.Cnを検索してください。
Recommended Posts